目录
四、AutoConfiguration注解控制bean加载顺序
五、自定义ApplicationContextInitializer
5.1 ApplicationContextInitializer介绍
5.2 ApplicationContextInitializer使用
5.3 ApplicationContextInitializer控制加载顺序
一、前言
在使用spring框架开发过程中,可能会遇到下面的情况:
- 某个bean被另一个bean依赖,也就是bean-b的创建必须依赖bean-a;
- 某个bean被很多其他bean依赖,比如bean-a初始化完成后,其他bean需要依靠bean-a初始化自己的业务;
- ...
类似这样的场景还有很多,总结来说,这就涉及到bean的加载顺序问题,如何解决呢?下面列举出几种常用的解决方案。
二、使用@order注解控制顺序
@order注解是spring-core包下的一个注解,@Order的作用是定义Spring IOC容器中Bean的执行顺序的优先级(这里的顺序也可以理解为存放到容器中的先后顺序)。开发过程当中有时候经常会出现配置依赖关系,例如注入A对象使用了@ConditionalOnBean(B.class),意思是要求容器当中必须存在B.class的实例的时候,才会进行注入A。这时候我们就必须保证B对象在注入A对象前进行注入。
2.1 @order 注解使用示例
有如下两个类,Dem