Ce que cet article vous apporte concerne la solution au problème selon lequel les transactions ne peuvent pas être gérées par les conteneurs à ressort. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Je travaille récemment sur un petit projet qui est le framework springmvc mybatis. Chaque fois dans le journal de la console, il y aura une connexion JDBC [com.mysql.jdbc.JDBC4Connection@59dfe4bc] qui ne sera pas gérée par la sortie Spring.
Cela montre qu'il doit y avoir un problème avec la configuration de la transaction, j'ai donc parcouru le fichier de configuration et découvert que la transaction basée sur les annotations était configurée. J'ai regardé le code et j'ai également utilisé l'annotation @Transactional.
J'ai donc commencé à réfléchir à ce qui n'allait pas. Parce que j'avais déjà vu du code source de spring et du code source de springmvc, j'ai eu quelques idées, J'ai localisé le problème dans le fichier de configuration Spring
et le fichier de configuration Springmvc
Le bean analysé dans le fichier de configuration Spring. Après avoir ajouté l'annotation de transaction, Spring. y ajoutera un proxy avec des capacités de transaction.Une fois le conteneur springmvc démarré, il a une relation parent-enfant avec le conteneur spring, getbean Le processus consiste à obtenir d'abord le
bean du sous-conteneur. Le problème réside ici. Les beans du conteneur springmvc n'ont pas de capacités de traitement des transactions, j'ai donc apporté quelques ajustements à la stratégie d'analyse
dans le fichier de configuration springmvc. l'annotation scanne et exécute le projet
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service" />
spring pour gérer la transaction.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!