Spring的误区使用注意事项

1、@Order对自定义的普通bean无控制顺序的作用
已知有用的场景:

  • @AspectJ定义的切面类的加载顺序
  • ApplicationListener的实现类的加载顺序
  • 控制CommandLineRunner的实现类的加载顺序

2、@AutoConfigureOrder在当前工程去指定@Configuration顺序也没有,这个一般是当前项目读取三方依赖,比如spring.factories中定义的@Configuration的加载顺序

3、配置的优先级

  • @Configuration的配置类在最先被初始化,多个@Configuration配置类,顺序由构造AnnotationConfigApplicationContext时传入的顺序为准(若是被scan扫描进去的,则无序),然后是@Bean、@Component之类的初始化。(常见的配置优先级是这样的,也有个别spring的内部实现类的优先级在@configuration之前的,比如HealthIndicator)
  • @Configuration配置类下:@Bean方法上加static成为静态方法,并不能提升此Bean的优先级;但是内部静态类里的@Bean的优先级均高于外层定义的@Bean,static静态内部类能够提升优先级,它比非静态内部类的优先级还高
  • @Configuration配置类下的bean的加载顺序与书写顺序也无关

待继续补充~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值