spring订购bean类清单
问题内容:
我有几个实现相同接口的bean。每个bean都带有注释
@Component
@Order(SORT_ORDER).
public class MyClass implements BeanInterface{
...
}
在某一时刻,我自动装配了一个组件列表,并希望得到一个经过排序的bean列表。Bean列表未按照我使用批注设置的顺序进行排序。
我尝试实现有序接口,并且发生相同的行为。
@Component
public class Factory{
@Autowired
private List<BeanInterface> list; // <- I expect a sorted list here
...
}
我做错什么了吗?
问题答案:
正如您所说,我找到了解决该问题的方法,尽管这是一个不错的功能,但它并不意味着该注释。
为了使其工作,只需在包含排序列表的Bean中添加以下代码即可。
@PostConstruct
public void init() {
Collections.sort(list,AnnotationAwareOrderComparator.INSTANCE);
}
希望能帮助到你。