我有一個接口Java Bean的複合注
public interface Abstraction {
void execute();
}
我建立了一個複合的實現,想註冊這個對象作爲bean,@Named
@Named
public class Composite implements Abstraction {
private List<Abstraction> list;
@Inject
public Composite(List<Abstraction> list) {
this.list = list;
}
public void execute() {
list.forEach(Abstraction::execute);
}
}
如何設置它,以便抽象實現的集合被正確注入到上面的Composite中?我將擁有另一個將抽象視爲依賴關係的對象,並且我希望它將上面的2個實現注入到ctor中,以獲得上面的@Named
複合。
public class Implementation1 implements Abstraction {
public void execute() { }
}
public class Implementation2 implements Abstraction {
public void execute() { }
}
它會一直是兩個嗎?只需按名稱分別注入它們。 – Savior
@Pillar這是我特殊的情況,我可以做到這一點,但不知道如何,因爲我不能在每個實現上放置'Named'註釋。對不起,我是新來的Java豆世界。 –