Java 我可以使用CDI将资源注入JAX-RS应用程序/ResourceConfig吗?

Java 我可以使用CDI将资源注入JAX-RS应用程序/ResourceConfig吗?,java,jersey,jax-rs,cdi,Java,Jersey,Jax Rs,Cdi,我希望我的ResourceConfig能够访问数据库进行配置。我试过这个: @ApplicationPath("/api") public class ApplicationConfig extends ResourceConfig { @PersistenceContext(unitName = "myPU") private EntityManager em; @Inject private MyEjb myEjb; @PostConstruct

我希望我的ResourceConfig能够访问数据库进行配置。我试过这个:

@ApplicationPath("/api")
public class ApplicationConfig extends ResourceConfig {

    @PersistenceContext(unitName = "myPU")
    private EntityManager em;

    @Inject
    private MyEjb myEjb;

    @PostConstruct
    public void init() {
      // em and myEjb are both null
      ...
    }
但是没有注入EntityManager,也没有注入EJB(两者都为null)

在JAX-RS中有没有一种特殊的方法来实现这一点


注意:我能够将资源注入到带有路径注释的类中。在实际的ApplicationPath注释类中执行此操作时遇到问题。

有关详细信息,请参阅文档:@WilderValera以前确实阅读过该文档,但它看起来只是用于创建可注入web服务资源的资源(路径注释)…它似乎不适用于将资源注入到ApplicationPath注释类中,是吗?不,不适用。加载ApplicationConfig类时,MyEjb尚未被注入。您的AbstractBinder需要首先运行并注册。这对你有意义吗?还有,为什么需要在ApplicationConfig类中注入呢?只有jax rs理解这一点
ApplicationConfig
。要将非jaxrs注入到其中,您需要为CDI启用它,通过使用
ApplicationScoped
@WilderValera对其进行注释,我想注入一个数据库资源,因为我试图将swagger与我的web服务一起使用,而swagger需要在其BeanConfig(在ResourceConfig内部)中设置一些配置变量。我想在启动时用数据库变量填充这些变量。有关详细信息,请参阅文档:@WilderValera以前确实阅读过该文档,但它看起来只是用于创建可注入web服务资源的资源(路径注释)…它似乎不适用于将资源注入到ApplicationPath注释类中,是吗?不,不适用。加载ApplicationConfig类时,MyEjb尚未被注入。您的AbstractBinder需要首先运行并注册。这对你有意义吗?还有,为什么需要在ApplicationConfig类中注入呢?只有jax rs理解这一点
ApplicationConfig
。要将非jaxrs注入到其中,您需要为CDI启用它,通过使用
ApplicationScoped
@WilderValera对其进行注释,我想注入一个数据库资源,因为我试图将swagger与我的web服务一起使用,而swagger需要在其BeanConfig(在ResourceConfig内部)中设置一些配置变量。我想在启动时用数据库变量填充这些变量。