java - Why is a bean declared in @SpringBootApplication class registered even though it is not a stereotyped class? -
i have main class in project
@springbootapplication @enableoauth2sso public class app { public static void main(string[] args) throws exception { springapplication.run(app.class, args); } @bean public requestcontextlistener requestcontextlistener(){ return new requestcontextlistener(); } }
as far know, component scan scans beans in stereotyped classes 1 of @component, @service, @repository, @controller
if not wrong.
from spring docs
by default, classes annotated @component, @repository, @service, @controller, or custom annotation annotated @component detected candidate components.
i cannot understand how bean in class registered. not stereotyped class , no annotation annotated @component
shouldn't scanned in first place code works perfectly. in fact use case having bean in class way problem solved, different thing. can please explain this. !!
@springbootapplication
meta annotation looks like:
// details omitted @springbootconfiguration @enableautoconfiguration public @interface springbootapplication { ... }
@springbootconfiguration
meta annotation:
// other annotations @configuration public @interface springbootconfiguration { ... }
and @configuration
is:
// other annotations @component public @interface configuration { ... }
it works since:
by default, classes annotated @component, @repository, @service, @controller, or a custom annotation annotated @component detected candidate components.
Comments
Post a Comment