Jakarta ee 使用CDI将参数传递给bean
我是CDI的新手。我不知道如何使用CDI转换以下代码Jakarta ee 使用CDI将参数传递给bean,jakarta-ee,cdi,Jakarta Ee,Cdi,我是CDI的新手。我不知道如何使用CDI转换以下代码 Class Client { void method(){ List<Events> events = getEvents(); I b = new B(events); I c = new C("Hello"); } List<Events> getEvents(){ //Do Something return events; } } Class B
Class Client {
void method(){
List<Events> events = getEvents();
I b = new B(events);
I c = new C("Hello");
}
List<Events> getEvents(){
//Do Something
return events;
}
}
Class B implements I{
List<Events> events ;
B(List<Events> events){
this.events = events;
}
}
Class C implements I{
String s;
C(String s){
this.s = s;
}
}
你需要申报生产商
@Produces @Ii(Ii.type.B)
public void produceB {
return Ii.type.B;
}
@Produces @Ii(Ii.type.C)
public void produceC {
return Ii.type.C;
}
为了创建事件,您需要注释应使用@Observes
创建事件的参数。在下面的代码中,您可以看到如何获得已触发事件的列表
@Inject
private List<Event> events;
@Inject
私人列表活动;
但B类如何获得列表?products将只返回新的B()。我使用允许您访问事件列表的代码更新了我的答案。
@Inject
private List<Event> events;