Spring Boot @EnableAutoConfigura

作者: 每天学点编程 | 来源:发表于2017-09-22 20:47 被阅读120次

请关注我的微信公众号


个人微信公众号

技术交流群 (仅作技术交流):642646237
请关注我的头条号:


如果有多个子项目,并且每个子项目都配置了各自的bean,那么spring可以起作用吗?这时候@EnableAutoConfiguration就能够发挥它的作用了。
下面先通过一个例子来演示一下。

@EnableAutoConfiguration例子——主项目

还是直接从之前的项目拷贝过来,入口程序如下:


@EnableAutoConfiguration例子——子项目

新建一个项目springboot_start_EnableAutoConfiguration_core_bean,pom.xml如下:

该子项目只有一些bean的配置:

@EnableAutoConfiguration例子——主项目引用子项目

@EnableAutoConfiguration例子——子项目的bean配置如何让主项目使用

在子项目中创建src\main\resources\META-INF\spring.factories文件,内容如下:


org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.maijunjin.springboot.springboot_start_EnableAutoConfiguration_core_bean.RunnableConfiguration,com.maijunjin.springboot.springboot_start_EnableAutoConfiguration_core_bean.UserConfiguration,com.maijunjin.springboot.springboot_start_EnableAutoConfiguration_core_bean.vo.Role
现在重新运行主项目的App,结果如下:

@EnableAutoConfiguration原理解析


可以很清楚地看到EnableAutoConfiguration注解引入了EnableAutoConfigurationImportSelector类,而EnableAutoConfigurationImportSelector又实现了ImportSelector接口,在之前的教程说过
selectImports方法返回的字符串数组会被加入到spring容器中。
下面看看selectImports方法:

SpringFactoriesLoader.loadFactoryNames会加载类路径下META-INF/spring.factories
文件的内容。
其他更详细的内容请自行查阅。

是否启用EnableAutoConfiguration

可以在配置文件中配置spring.boot.enableautoconfiguration=true,该属性默认为true。

EnableAutoConfiguration排除某些类

下面看看spring自带的

相关文章

网友评论

本文标题:Spring Boot @EnableAutoConfigura

本文链接:https://www.haomeiwen.com/subject/mfntextx.html