springboot bean扫描路径的实现

网友投稿 214 2023-02-06

springboot bean扫描路径的实现

1:默认扫描启动类所在路径下所有的bean

2:可以在启动类中添加注解,手动指定扫描路径:

@ComponentScan(basePackages = {"com.xxx.service1.*","com.xxx.service2.**"})

补充:SpringBoot 是如何通过 @SpringBootApplication 扫描项目中的 Bean

原因

首先因为 XXXXXXXApplication 附带 @SpringBootApplication 注解,而 @SpringBootApplication 注解的层次如下:

SpringBootApplication

----@Inherited

----@SpringBootConfiguration

--------@Configuration

----@EnableAutoConfiguration

--------@Inherited

--------@AutoConfigurationPackage

------------@Inherited

------------@Import(AutoConfigurationPackages.Registrar.claBXuljvZpss)

--------@ImportBXuljvZp(AutoConfigurationImportSelector.class)

----@ComponentScan

--------@Repeatable(ComponentScans.class)

实现

可以看到 @SpringBootApplication 继承 @ComponentScan 与 @Configuration 用处如下;

扫描方法开始流程:

主要观察黄色方块的方法,是具体扫描路径的地方,具体实现流程如下:

获取 File 目录下的所有以 class 为结尾的文件后,扫描工作就完成了, 剩下的就是 spring 判断是否要管理此类的逻辑(例如:该类是否存在 @Component )

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解决springboot无法注入JpaRepository的问题
下一篇:使用JAVA+Maven+TestNG框架实现超详细Appium测试安卓真机教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~