Comment puis-je désactiver l'injection de dépendances dans Glassfish afin qu'il ne soit pas incompatible avec le printemps?Désactiver la dépendance du printemps Injection dans Glassfish
Est-il possible de configurer GlassFish-web.xml
Comment puis-je désactiver l'injection de dépendances dans Glassfish afin qu'il ne soit pas incompatible avec le printemps?Désactiver la dépendance du printemps Injection dans Glassfish
Est-il possible de configurer GlassFish-web.xml
J'ai finalement trouvé une solution. Il est possible d'injecter un EntityManager dans Spring sans avoir recours à @PersistenceContext. Il existe un factorybean Spring pour créer un EntityManager partagé. Compte tenu d'une entité gestionnaire de l'usine:
<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>
Maintenant, je peux supprimer l'annotation @PersistenceContext de MyJpaFacade afin que Glassfish ne cherche pas à rechercher et injecter un gestionnaire d'entités dans la propriété entityManager.
Spring peut utiliser différentes annotations que GF ne » comprennent. Sans quelques exemples de code, il est difficile d'aller plus loin.
Il n'y a rien qui va tourner DI ... off il fait partie du conteneur, de sorte que vous aurez besoin d'utiliser des annotations, il ne se soucie pas.
Le problème est @PersistenceContext, qui est injecté à partir du printemps. Je n'ai pas réussi à trouver une alternative JEE, Spring. –
Il suffit d'utiliser le nom complet du paquetage comme @ javax.persistence.PersistenceContext private EntityManager em; – Preston
Je ne vois pas la différence entre @PersistenceContext EntityManager em; (avec une importation en haut du fichier java) et @ javax.persistence.PersistenceContext private EntityManager em; Les deux sont injectés à partir de Glassfish, qui échoue, et mon fichier de configuration de printemps, qui réussirait si Glassfish se retirait du chemin. –
Un autre avantage est que JRebel est maintenant beaucoup mieux à réinjecter un nouveau EntityManager si les beans entité ou persistence.xml a été changé. –