@Service @Order(1)
public class FooService implements IService {..}
@Service @Order(2)
public class BarService implements IService {..}
Run Code Online (Sandbox Code Playgroud)
是否保证以下列表中的订单始终为{FooService, BarService}:
@Inject
private List<IService> services;
Run Code Online (Sandbox Code Playgroud)
(同样的问题适用于xml配置)
axt*_*avt 12
我猜不是因为@Order不是通用注释.来自javadoc:
注意:仅对特定类型的组件支持基于注释的排序,例如,对于基于注释的AspectJ方面.另一方面,Spring容器策略通常基于Ordered接口,以允许每个实例的可配置排序.
此外,模块org.springframework.core.annotation.Order和AnnotationAwareOrderComparator源中没有出现.beanscontext
使其按预期运行的简单方法是:
@PostConstruct
public void init() {
Collections.sort(services, AnnotationAwareOrderComparator.INSTANCE);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5204 次 |
| 最近记录: |