美文网首页我的微服务
SpringBoot设置@Configuration的加载顺序

SpringBoot设置@Configuration的加载顺序

作者: 树蜂 | 来源:发表于2018-12-27 09:12 被阅读0次

    目录
    1、简介
    2、例子


    1、简介

    Spring Boot会检查你发布的jar中是否存在META-INF/spring.factories文件,该文件中以EnableAutoConfiguration为key的属性应该列出你的配置类:

    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
    com.mycorp.libx.autoconfigure.LibXAutoConfiguration,\
    com.mycorp.libx.autoconfigure.LibXWebAutoConfiguration
    

    你可以使用@AutoConfigureAfter@AutoConfigureBefore注解为配置类指定特定的顺序。例如,如果你提供web-specific配置,你的类就需要应用在WebMvcAutoConfiguration后面。

    你也可以使用@AutoconfigureOrder注解为那些相互不知道存在的自动配置类提供排序,该注解语义跟常规的@Order注解相同,但专为自动配置类提供顺序。

    注:自动配置类只能通过这种方式加载,确保它们定义在一个特殊的package中,特别是不能成为组件扫描的目标。

    2、例子

    例如下面的项目,想要保证加载BananaConf.java后再加载AppleConf.java

    目录结构
    1)添加文件spring.factories(若没有META-INF文件夹,则需要先添加)
    2)在spring.factories中加入
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
    com.example.demo.conf.AppleConf,\
    com.example.demo.conf.BananaConf
    

    3)AppleConf中添加 @AutoConfigureAfter(BananaConf.class)

    @Configuration
    @AutoConfigureAfter(BananaConf.class)
    public class AppleConf
    {
        xxx
    }
    

    BananaConf正常配置即可

    @Configuration
    public class BananaConf
    {
        xxx
    }
    

    注意:在spring.factories注册了的配置类,可以不用再该配置类写@Configuration

    相关文章

      网友评论

        本文标题:SpringBoot设置@Configuration的加载顺序

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