如何创建根据参数创建对象的生产者方法?
我的目标是能够CrudService
在我的应用程序中注入不同的类,但使用服务所用于的类对其进行参数化(例如。User.class
)。
下面的代码当然不起作用,但说明了我的意图。
@Produces
@JPAContainer(Class type) //something like this?
public JPAContainer getJPA() {
@PersistenceContext
private EntityManager em;
@Produces
@JPAContainerAnnot
public JPAContainer getJPAContainer() {
return JPAContainerFactory.make(type, em); //eg: class = User.class, Person.class
}
}
@Stateless
public class CrudServiceUser() {
@Inject
@JPAContainer(type = User.class) //something like this parameter
private JPAContainer container;
}
@Qualifier
@Retention(RetentionPolicy.RUNTIME)
@Target({FIELD,METHOD,PARAMETER,TYPE})
public @interface JPAContainer {
}