Une brève introduction aux sept principaux modules de Spring Framework
Explication détaillée du code du module MVC au printemps
Le module ORM prend en charge les cadres ORM tels que Hibernate, Jdo, TopLinkiBatis, etc.
Les modules ORM reposent sur Dom4j.jar, Antlr.jar et d'autres packages
Au printemps, les ressources Hibernate doivent être remises à la gestion du printemps, Hibernate et sa SessionFactory et d'autres connaissances que le printemps est un haricot spécial, et le printemps est responsable de l'instanciation et de la destruction. Par conséquent, la couche DAO n'a besoin que de hériter de HiberNatedAosupport et n'a pas besoin de traiter l'API d'Hibernate, et n'a pas besoin d'activer ou de désactiver la session et la transaction d'Hibernate. Le printemps maintiendra automatiquement ces objets
Interface publique icatdao {public void createcat (chat cat); Liste publique <at> listcats (); public int getCatScount (); Cat public FindCatByName (nom de chaîne); } import org.springframework.orm.hibernate3.Support.hibernatedaosupport; La classe publique Catdaoimpll étend HiberNatedaOSupportimplements icatdao {public void createcat (cat cat) {this.getHibernateTemplate (). persist (cat); } public list <at> listcats () {renvoie ceci. GETHIBERNATETÉTÉ (). Find ("SELECT CFROM Cat C"); } public int getCatScount () {nombre n = (nombre) this.getSession (true) .CreateeQuery ("selectCount (c) from cat C"). UniQueResult (); retour n.intvalue (); } public Cat findcatByName (nom de chaîne) {list <at> catlist = this.getHiberNateTemplate (). find ("select c from cat where c.name =?", name); if (catlist.size ()> 0) return catlist.get (0); retourner null; }}<bean id = "sessionfactory" destrie-méthod = "destroy"> <propriété name = "dataSource" ref = "dataSource" /> <! - Toutes les classes sous ce pack <value> com.clf.spring.orm.cat </value> <value> com.clf.spring.orm.dog </value> </sth key = "hibernate.show_sql"> true </ prop> <prop key = "hibernate.format_sql"> true </ prop> <prop> key = "hibernate.hbm2ddl.auto"> create </ prop> </props> </ property> <bean id = "catdao"> <propriété nom = "sessionfactory" ref = "sessionfactory" /> </prewa
Si vous utilisez une classe d'entité configurée avec XML, modifiez-la en
<bean id = "SessionFactory" destrement-Method = "Destroy"> <propriété name = "mappingResources"> <sist> <value> classpath: /com/clf/orm/cat.hbm.xml </value> </sist> </promest>… </ank>
Spring ajoute des transactions dans la couche DAO par défaut, et chaque méthode de la couche DAO est une transaction. Dans la programmation Spring + Hibernate, la pratique habituelle consiste à ajouter une couche de service à la couche DAO, puis à configurer les transactions à la couche de service.
Interface publique IcatService {public void createcat (chat cat); Liste publique <at> listcats (); public int getCatScount (); }L'approche hiérarchique est que le programme appelle la couche de service, la couche de service appelle la couche DAO et que la couche DAO appelle Hibernate pour obtenir un accès aux données. En principe, l'accès transfrontalier n'est pas autorisé. La superposition rend la hiérarchie des affaires plus claire
classe publique CatServiceIMPl implémente icAtService {private idao catdao; public idao getcatdao () {return Catdao; } public void setcatdao (idao dao) {this.catdao = dao; } public void createcat (chat cat) {catdao.createcat (cat); } public list <at> listcats () {return catdao.listcats (); } public int getCatScount () {return catDao.getCatScount (); }}Puis configurer la gestion des transactions au niveau du service
<! - Transaction Manager -> <bean id = "hibernatetransactionManager"> <propriété name = "sessionfactory" ref = "sessionfactory" /> </Ean> <! - Règles de gestion des transactions -> <bean id = "hibernateTransactionAttributeource"> <propriété name = "Properties"> <props> <! - Ajouter des transactions à toutes les méthodes -> <propkeypropkey = "*"> Propgation_Required </prop> </parewiers> </ank> <! - Transaction Factory Agent Class, assembler les classes de mise en œuvre du service, le gestionnaire de transactions et les règles de gestion des transactions -> <bean id = "CatService"> <propriété name = "TransactionManager" Ref = "Property Name =" Catda " ref = "Catdao" /> </anEp> </ propriété> <propriété name = "TransactionAttributesource" ref = "hibernatetransactionAttributeSource" /> </ank>
Résumer
Ce qui précède est toute l'explication détaillée du code du module ORM de Spring. J'espère que vous pourrez aider. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!