假设我正在注入一些bean的列表:
@Autowired
List<SomeBean> beans;
在这种情况下什么是默认注射顺序?
我知道Ordered
接口和@Order
注释,我只询问默认行为。
我注意到的是手动bean注册的情况:
context.register(SomeBeanA.class);
context.register(SomeBeanB.class);
context.register(SomeBeanC.class);
这个bean的注入顺序与我注册的完全相同:列表中的1个元素是SomeBeanA,2个 - SomeBeanB,3个 - SomeBeanC。
这种行为有什么保证吗?我的意思是,我可以确定它在进一步发布时不会改变吗?
感谢。
答案 0 :(得分:1)
如果您想保证自动装配列表的顺序,我会使用订单界面或注释。
实际上,无论如何都会对列表进行排序,并且每个未声明显式顺序的bean都会解析为默认顺序。 (如果我没记错的话,默认为min整数)