Una breve introducción a los siete módulos principales del marco de resorte
Explicación detallada del código del módulo MVC en primavera
El módulo ORM proporciona soporte para marcos ORM como Hibernate, JDO, TopLinkibatis, etc.
Los módulos ORM dependen de DOM4J.JAR, Antlr.jar y otros paquetes
En la primavera, los recursos de hibernación deben entregarse a la gestión de primavera, Hibernate y su SessionFactory y otros conocimientos, la primavera es un frijol especial, y la primavera es responsable de la instanciación y la destrucción. Por lo tanto, la capa DAO solo necesita heredar hibernadaosupport, y no necesita lidiar con la API de Hibernate, y no necesita encender o desactivar la sesión y la transacción de Hibernate. Spring mantendrá automáticamente estos objetos
interfaz pública icatdao {public void CreateCat (Cat Cat); Lista pública <Cat> ListCats (); público int getCatScount (); Public Cat FindCatByName (nombre de cadena); } importar org.springframework.orm.Hibernate3.support.HibernatedaSupport; La clase pública CatdaoImpl extiende HibernadaosupportImplements icatdao {public void CreateCat (Cat Cat) {this.gethiberNateTemplate (). Persist (Cat); } Lista pública <Cat> listCats () {return esto. gethibernateTemplate (). Find ("Seleccione CFrom Cat C"); } public int getCatScount () {número n = (número) this.getSession (true) .createQuery ("SelectCount (c) de Cat C"). Uniqueresult (); regresar n.intValue (); } public Cat FindCatByName (nombre de cadena) {List <Cat> CatList = this.gethibernateTemplate (). Find ("Seleccione C de Cat Where C.name =?", Nombre); if (catList.size ()> 0) return CatList.get (0); regresar nulo; }}<bean id = "sessionFactory" destruye-method = "destruir"> <propiedad name = "dataSource" ref = "dataSource"/> <!-Todas las clases en este paquete se cargarán como clases de entidad-> <Property name = "annotatedPackages" valor = "classpath:/com/clf/orm"/> <name de propiedad = "anotatedClasses"> <list> <list> <list> <list> <Listing> <Listing> <Listing> <Listing> <Listebat <value> com.clf.spring.orm.cat </value> <alone> com.clf.spring.orm.dog </value> </list> <Property name = "HibernateProperties"> <Props> <Prop Key = "Hiberante.dialect"> org.hibernate.dialect.mysqldialect </prop> <Prop> 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"> <property name="sessionFactory" ref="sessionFactory"/> </bean>
Si usa una clase de entidad configurada con XML, cámbiela a
<bean id = "sessionFactory" destruye-method = "destruye"> <propiedad name = "mappingResources"> <list> <value> classpath: /com/clf/orm/cat.hbm.xml </value> </list> </property> ... </bean>
Spring agrega transacciones en la capa DAO de forma predeterminada, y cada método de la capa DAO es una transacción. En la programación Spring+Hibernate, la práctica habitual es agregar una capa de servicio a la capa DAO y luego configurar las transacciones a la capa de servicio.
interfaz pública Icatservice {public void CreateCat (Cat Cat); Lista pública <Cat> ListCats (); público int getCatScount (); }El enfoque jerárquico es que el programa llama a la capa de servicio, la capa de servicio llama a la capa DAO y la capa DAO llama a Hibernate para lograr el acceso a los datos. En principio, el acceso transfronterizo no está permitido. Las capas deja la jerarquía de negocios más clara
clase pública CatServiceImpl implementa ICATService {private Idao Catdao; public Idao getCatdao () {return Catdao; } public void setCatdao (idao dao) {this.catdao = dao; } public void CreateCat (Cat Cat) {Catdao.CreateCat (Cat); } Lista pública <cat> listCats () {return catdao.listCats (); } public int getCatScount () {return catdao.getCatScount (); }}Luego configure la gestión de transacciones a nivel de servicio
< <propKeyPropkey = "*"> Propgation_Required </prop> </property> </ Bean> <!-Clase de agente de fábrica de transacciones, ensamblar la clase de implementación del servicio, el administrador de transacciones y las reglas de administración de transacciones-> <bean id = "catservice"> <Property name = "transaccionManager" ref = "hibernateTransactionManager"> <Nombre de propiedad = "objetivo"> <<nombro de la propiedad> "n. ref = "Catdao"/> </bean> </propine> <Property name = "transaccionAttributesource" ref = "hibernateTransactionAttributesource"/> </bean>
Resumir
Lo anterior es toda la explicación detallada del código del módulo ORM de Spring. Espero que puedas ayudar. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!