Ham*_*mid 5 java spring spring-boot
下面是我的要求,举一个简单的例子:
public interface Animal {}
@Component
@Order(1)
public class Hippo implements Animal{}
@Component
@Order(2)
public class Crocodile implements Animal{}
Run Code Online (Sandbox Code Playgroud)
我想以List不同的顺序将它们注入两个。例如landAnimals,第一个索引中应该有河马,第二个索引中waterAnimals应该有鳄鱼,而第一个索引中应该有鳄鱼,第二个索引中应该有河马。
@Autowired
private List<Animal> landAnimals; // 0-Hippo & 1-Crocodile (achieved with @Order)
@Autowired
private List<Animal> waterAnimals; // 0-Crocodile & 1-Hippo (not achieved)
Run Code Online (Sandbox Code Playgroud)
@Order,我们可以动态更改它吗?
您无法动态地使用@Order.
注意:我认为您不需要创建两个不同的列表。注入单个列表并在需要时相应地反转。
您可以致电Collections.reverse()以根据您的要求反转列表。
例子 :
@Autowired
private List<Animal> landAnimals;
public void showOrderList() {
Collections.reverse(animals);
for (Animal animal : animals) {
// do some operation..
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |