我有一个接口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豆世界。 –