SpringBoot运行原理
原创
©著作权归作者所有:来自51CTO博客作者wx6316c4e40e2ec的原创作品,请联系作者获取转载授权,否则将追究法律责任
我们从springboot项目的的启动类中可以看到最核心的两行代码, @SpringBootApplication和SpringApplication.run【rua木】方法。
在 @SpringBootApplication 的内部包含了3个注解
@Configuration
@EnableAutoConfiguration
@ComponentScan
@Configuration是Spring Ioc容器的配置类,可以把它看成xml配置文件中的beans标签。 @Configuration写到类上面,在类中的方法上如果写了 @Bean注解,那么它的返回值将作为一个bean注册到Spring的IoC容器,方法名默认作为bean的id。
@ComponentScan自动扫描并加载符合条件的组件,比如 @Controller和 @Service等,最终将这些bean加载到IoC容器中。
我们可以通过basePackages来指定 @ComponentScan 自动扫描的范围,如果不指定,则默认会扫描 @ComponentScan所在类的 包的 根目录。这也是SpringBoot的启动类最好是放在根目录下的原因。
@EnableAutoConfiguration 这个注解是借助 @Import的帮助,将所有符合 自动配置 条件的bean 加载到IoC容器中。