首先你会注意到,SpringBoot应用启动类都会有@SpringBootApplication
通过查看@SpringBootApplication源码,关键就在于@SpringBootConfiguration、@EnableAutoConfiguration,@ComponentScan这三个注解
@SpringBootConfiguration
根据Spring文档,只是Spring标准@Configuration批注的替代方法。 两者之间的唯一区别是@SpringBootConfiguration允许自动找到配置。
通过源码可以看到@Configuration注解,这个注解的作用就是声明当前类是一个配置类,Spring就会自动扫描到添加了@Configuration的类,并且读取其中的配置信息。
@EnableAutoConfiguration
通过源码发现,关键使用@Import引入了AutoConfigurationImportSelector类,该类使用selectImports()方法扫描具有META-INF/spring.factories文件的jar包。
拓展:spring.factories文件是Key=Value形式,多个Value时使用逗号隔开。
@ComponentScan
主要作用就是扫描@SpringBootApplication注解的Application类所在的包下所有的@component注解(或拓展了@component的注解)标记的bean,并注册到spring容器中。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/85479.html