gpt4 book ai didi

java - 带参数注入(inject)的生产者?

转载 作者:行者123 更新时间:2023-12-01 17:20:23 24 4
gpt4 key购买 nike

如何创建一个根据参数创建对象的生产者方法?

我的目标是能够在应用程序中的不同类上注入(inject) 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 {

}

最佳答案

是的,您可以将 InjectionPoint 对象注入(inject)到生产者方法中。限定符的 type 属性必须是 @Nonbinding。从 InjectionPoint 中,您可以获取对注入(inject)点上的注释的引用,找到您的 JPAContainer 并从中读取值。

关于java - 带参数注入(inject)的生产者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19200473/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com