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