在Glassfish中禁用Spring依赖项注入

在Glassfish中禁用Spring依赖项注入,spring,dependency-injection,glassfish,Spring,Dependency Injection,Glassfish,如何在Glassfish中禁用依赖项注入,使其不与spring冲突 是否可以在glassfish web中进行配置。xmlSpring可以使用GF无法理解的不同注释。如果没有一些代码示例,就很难再进一步了 没有任何东西可以关闭DI。。。它是容器的一部分,因此您需要使用它不关心的注释。我终于找到了解决方案。可以在Spring中注入EntityManager,而无需求助于@PersistenceContext。有一个Spring factorybean来创建共享的EntityManager。给定实体

如何在Glassfish中禁用依赖项注入,使其不与spring冲突


是否可以在glassfish web中进行配置。xml

Spring可以使用GF无法理解的不同注释。如果没有一些代码示例,就很难再进一步了


没有任何东西可以关闭DI。。。它是容器的一部分,因此您需要使用它不关心的注释。

我终于找到了解决方案。可以在Spring中注入EntityManager,而无需求助于@PersistenceContext。有一个Spring factorybean来创建共享的EntityManager。给定实体管理器工厂:

<bean id="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="myJpaFacade" class="com.example.MyJpaFacade">
    <property name="entityManager" ref="entityManager" />
</bean>

现在我可以从MyJpaFacade中删除@PersistenceContext注释,这样Glassfish就不会试图查找实体管理器并将其注入entityManager属性。

问题在于@PersistenceContext,它是从Spring注入的。我还没有找到一个非JEE的Spring替代方案;我看不出@PersistenceContext EntityManager em;在java文件的顶部有一个import和@javax.persistence.PersistenceContext private EntityManager em;两者都是从Glassfish注入的,但失败了,而我的spring配置文件,如果Glassfish退出,它会成功。基于您的问题,我假设Spring还有一个与javax注释冲突的PersistenceContext注释。如果不是这样的话,那么你为什么要关心GF是否正在注入它呢?是的,他们都在使用jpa@PersistenceContext,Glassfish失败了,因为Glassfish中没有设置connectionpool。Spring可以根据其配置注入entitymanager。另一个好处是,如果实体bean或persistence.xml已更改,JRebel现在在重新注入新的entitymanager方面会做得更好。