zoukankan      html  css  js  c++  java
  • @AutoConfigureAfter不生效 @Configration bean的创建顺序

    https://gooroo.io/GoorooTHINK/Article/17466/Lessons-Learned-Writing-Spring-Boot-Auto-Configurations/29652#.W_ZwdFUzYdV

    https://blog.csdn.net/isea533/article/details/53975720

    自己写的starter中AutoConfig类所在包名不要和应用类的包名相同,  

    如果@ComponetScan扫描到autoConfig类,会立即初始化, 此时顺序不能保证。 如果autoConfig依赖一些bean顺序 比如@AutoConfigureAfter会失效,造成问题

    AutoConfiguration的本意是为了: 用户只引入了相关的jar, 但是没有自定义这些bean,  此时autoConfig会自动创建bean

    比如用户引用了redis,但是没有写<bean id=“redisXXXXX”>   redisAutoStarter会自动创建这些必须的类

    autoConfig的启动时机 应该是beanFactory靠后

    不在同一个包下:
    ==>> spring.factories 中定义了autoConfig 会被加载

    ==>> spring.factories 没有定义autoConfig, 不会被加载
      如果其他@Configuration类@Import了这个autoConfig, 会被加载

      其他@Configuration中@Autowire了spring.factories生成的@Bean,  导致提前初始化

    同一包名下:
    ==>> 不管spring.factories中有没有定义,扫描到后立即加载

    排序算法 org.springframework.boot.autoconfigure.AutoConfigurationSorter#doSortByAfterAnnotation

    @Configuration 不能同名,即使不在同一package下 https://blog.csdn.net/hongtinghua/article/details/92987119
  • 相关阅读:
    网页导出PDF文件
    图片翻转导航
    瀑布流之ajax
    楼梯效果
    数码时钟
    数字字母随机验证码
    kafka shell
    zookeeper shell
    正则
    Linux(一)
  • 原文地址:https://www.cnblogs.com/yszzu/p/10002281.html
Copyright © 2011-2022 走看看