我已经阅读了 CDI 中的 @Produces 注释,但我不了解它的用法。
public class Resources {
// Expose an entity manager using the resource producer pattern
@SuppressWarnings("unused")
@PersistenceContext
@Produces
private EntityManager em; //
@Produces
Logger getLogger(InjectionPoint ip) { //
String category = ip.getMember()
.getDeclaringClass()
.getName();
return Logger.getLogger(category);
}
@Produces
FacesContext getFacesContext() { //
return FacesContext.getCurrentInstance();
}
}
容器如何知道调用生产者方法?如果我注入一个EntityManager,容器如何调用@produces EntityManager?以及如何调用 getLogger 生产者方法?
我也看不出经历所有麻烦的理由。