Red de conocimiento informático - Problemas con los teléfonos móviles - Explicación detallada del código fuente de SessionFactory

Explicación detallada del código fuente de SessionFactory

Parte del proceso de construcción y código fuente:

1. Primero implemente el soporte de Hibernate3.2+Spring2.5 mediante combinación, elimine el archivo hibernate.cfg.xml, modifique el contenido del archivo applicationContext.xml y agregue la configuración de SessionFactory y dataSource.

2. Genere clases POJO y los archivos de mapeo correspondientes a través del modo asistente de MyEclipse.

3. Modificar

4. Escribir la interfaz DAO y la clase de implementación.

5. Modifique el archivo applicationContext.xml y agregue la configuración de la clase de implementación Dao.

6. Combinando Struts2 y Spring2.5, modifique el archivo web.xml y agregue la configuración de filtro requerida por struts2.

7. Agregue la biblioteca de clases correspondiente a struts2 y el paquete jar de configuración de struts2 y spring.

8. Copie el archivo struts.xml al directorio raíz src y luego modifique el archivo struts.xml para configurar constantes.

9. Modifique el archivo web.xml y configure el detector de Spring y las variables de contexto. Y aumente la configuración de OpenSessionInViewFilter.

10. Escribir clases de acción.

11. Configure el archivo struts.xml.

12. Modificar applicationContext.xml

13. Escribir archivo Jsp.

14. Cargue el proyecto en ejecución.

El siguiente es el código fuente del archivo clave:

Código fuente de Struts.xml:

Función de resaltado de código producida por Actipro CodeHighlighter (software gratuito) - / -><? versión xml = "1.0" codificación = "UTF-8"? & gt

& lt! DOCTYPE struts public

"-//Conceptos básicos del software Apache//Configuración DTD Struts 2.0//ES "

"/-><?xml version="1.0" encoding =" UTF-8 "? & gt

& ltwe B- versión de la aplicación = " 2.5 " xmlns = "/XML/ns/javaee "

xmlns:xsi="/xml /ns /javaee

/XML/ns/javaee/we b-app _ 2 _ 5 .

& ltContext Parameters & gt

& ltparam-name. & gt;contextConfigLocation & lt/param-name & gt;

& ltParameter Value & gt/WEB-INF/applicationContext*.

xml </param-value>

</context-param>

<! -Activar la supervisión->

<Listeners>

<Listener class>

org . contexto web de primavera. & lt/listener-class & gt;

& lt/listener & gt;

& lt! -Configurar OpenSessionInViewFilter antes de escuchar struts2-->

<Filter>

<Filter-name>lazyLoadingFilter</filter-name>

& ltfilter-class & gt;

org. marco de primavera. ORM. soporte de hibernación 3. opensessioninviewfilter

& lt/filter-class & gt;

& lt/filter & gt;

& lt! -Establecer contexto de carga de escucha ->

<filter>

<filter-name>struts2 </filter-name>

& ltfilter-class & gt;

org . Apache . struts 2 . despachador .

<Nombre del filtro>lazyLoadingFilter </filter-name>

<url-pattern>*.Action</URL-pattern>

</filter-mapping>

<Filter-mapping>

p>

<filter-name>struts2</filter-name>

<url-pattern>/* </URL-pattern>

& lt/filter-mapping>

& ltLista de archivos de bienvenida>

& ltArchivo de bienvenida>index.jsp & lt/welcome-file>

& lt/welcome-file- list & gt;

& lt/we B- app & gt;

Código fuente de ApplicationContext.xml:

Resaltado de código realizado por Actipro CodeHighlighter (software gratuito) -/-><? versión xml = "1.0" codificación = "UTF-8"? & gt

& ltbeans xmlns = " mons . dbcp . fuente de datos básica " & gt

& ltproperty name="driverClassName "

value = " com MySQL.

ver " & gt;

& lt/property & gt;

& ltproperty name="url "

valor = " JDBC:MySQL:// localhost :3306/tables " & gt;

& lt/property & gt;

& ltproperty nombre = " nombre de usuario " valor = " raíz " >& lt/property & gt;

& ltproperty nombre = " contraseña " valor = " hicc " & gt; & lt/property & gt; ltbean id="sessionFactory "

class = " org . spring framework . ORM . hibernate 3 . localsessionfactorybean " & gt;

& ltproperty name="dataSource "

& ltref bean = " fuente de datos "/& gt;

& lt/property & gt;

& ltproperty name = " propiedades de hibernación " & gt;

p>

& ltprop>

& ltprop key = " hibernate . dialect " & gt;

org dialecto de hibernación . p >& lt/prop & gt;

& ltprop key = " hibernar . show _ SQL " & gt; verdadero & lt/prop & gt; gt ;

& lt/property & gt;

& ltproperty name="mappingResources " >>p>

& ltlist& gt

& ltvalue>com /sy/CRM/model/employee.hbm.XML</value>

</list>

</property& gt;

& lt/bean & gt;

& ltbean id="employeeDao "

class = " com . sy . CRM . Dao . hibernate . empleadodaohibernate " & gt;

& ltproperty name="sessionFactory " >>p>

& ltref bean = " session factory "/& gt;

& lt/property & gt;

& lt/ bean & gt;

& ltbean id="employeeManager "

class = " com . sy . CRM . service . impl . Employeemanagerimpl " & gt; & ltproperty nombre="employeeDao " >>p>

&

ltref bean="employeeDao" />.

& lt/property & gt;

& lt/bean & gt;

& ltbean id = " agregar bean " class = " com . sy . Acción de CRM . Acción del empleado " alcance = " prototipo " & gt;

& ltproperty name="employeeManager " >>p>

& ltref bean="employeeManager" />.

& lt/property & gt;

& lt/bean & gt;

& ltbean id = " list bean " class = " com . sy . Acción de CRM . Acción del empleado " alcance = " prototipo " & gt;

& ltproperty name="employeeManager " >>p>

& ltref bean="employeeManager" />.

& lt/property & gt;

& lt/bean & gt;

& ltbean id = " eliminar bean " class = " com . sy . Acción de CRM . Acción del empleado " alcance = " prototipo " & gt;

& ltproperty name="employeeManager " >>p>

& ltref bean="employeeManager" />.

& lt/property & gt;

& lt/bean & gt;

& ltbean id = " actualizar bean " class = " com . sy . Acción de CRM . Acción del empleado " alcance = " prototipo " & gt;

& ltproperty name="employeeManager " >>p>

& ltref bean="employeeManager" />.

& lt/property & gt;

& lt/bean & gt;

& ltbean id = " editar bean " class = " com . sy . Acción de CRM . Acción del empleado " alcance = " prototipo " & gt;

& ltproperty name="employeeManager " >>p>

& ltref bean="employeeManager" />.

& lt/property & gt;

& lt/bean & gt; -Administrador de transacciones->

& ltbean id="transactionManager "

class = " org . spring framework . ORM . hibernate 3 . hibernatetransactionmanager " & gt; p>& ltproperty name="sessionFactory " >>p>

& ltref local="sessionFactory"/>.

& lt/property & gt;

& lt/bean & gt; -Configurar características de transacciones y configurar métodos para iniciar adiciones, eliminaciones y actualizaciones. Se requiere la función de propagación de transacciones ->;

& lttx:advice id = "tx Advisory" transaction-manager = "transaction manager" >

<tx:property>

& lttx:nombre del método = " agregar * " propagación = " REQUIRED "/& gt;

& lttx: nombre del método = " eliminar * " propagación = " REQUIRED "/& gt; p>

& lttx:method name = " update * " propagation = " REQUIRED "/& gt;

& lttx:method name="* "read-only=" true " /& gt ;

& lt/tx:property>

& lt/tx:advice>

& lt! -Configure los métodos de esas clases para la gestión de transacciones, así como los subpaquetes en el paquete com.sy.crm.service actual.

Todos los métodos de la clase deben hacer referencia a la configuración de tx: consejo-->;

& ltAOP:config & gt;

& ltaop:pointcut id="allManagerMethod "Expression="Execute(*

com. sy.crm. service.*.*(..))"/& gt;

& ltAOP:advisor asesoramiento-ref = "tx asesoramiento" pointcut-ref = "allManagerMethod"/& gt.

& lt/AOP:config>

& lt/beans>

Código fuente Add.jsp:

Código resaltado por Actipro CodeHighlighter (software gratuito) -/-><% @ idioma de la página = codificación de página "Java" = "utf-8" %>

< % @taglib uri = prefijo "/struts-tags" = "s" %>

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transicional//EN " & gt;

& lthtml & gt

& lthead & gt

<title>Agregar página</title>

<script language = "JavaScript" src="validation-framework.js"></script>

& ltmeta/-& gt;& lt% @ lenguaje de página = "Java" codificación de página = " utf-8 " % & gt;

& lt% @ taglib uri = "/struts-tags" prefijo = " s " %>

<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transicional//EN " & gt;

& lthtml & gt

& lthead & gt

<title>Página de empleados de lista</title>

& ltmeta http-equiv = "pragma" content = "no-cache" >

& ltmeta http-equiv = " cache-control " content = " sin caché " & gt;

& ltmeta http-equiv = " expira " content = " 0 "

& ltmeta http-equiv = " palabra clave " content = " palabra clave 1, palabra clave2, palabra clave3 "

& ltmeta http-equiv = " descripción " contenido = "Esta es mi página" & gt

& ltstyle type="text/css "

Tabla{

Borde: 1px negro sólido;

Colapso del borde: Colapso;

}

Título y título de la tabla

Borde: 1px negro sólido;

Relleno: 3px

Color de fondo: # cccccc

}

Cuerpo de la tabla tr td {

Borde: 1px negro sólido

Relleno: 3px

}

& lt/style & gt;

& lt/head & gt;

& ltbody & gt

& ltcenter& gt

& lth3 >

Gestión de empleados:

& lt/H3 & gt;

& ltbr & gt

& lth4 & gt

& lta href= "../EMP/add . JSP " & gt; Registro de empleados

& lt/H4 & gt;

& lts:form action = " eliminar " tema = " simple " >

& lttable& gt

& ltthead & gt

& lttr & gt

& ltth & gt

Seleccione

& lt/th & gt;

& ltth & gt

Número

& lt/th & gt ;

& ltth & gt

(Nombre completo)

& lt/th & gt;

& ltth & gt

p>

Teléfono

& lt/th & gt;

& ltth & gt

Dirección

& lt/th & gt;

& ltth & gt

Operación

& lt/th & gt;

& lt/tr & gt;

& lt/thead & gt;

& lttbody & gt

& lts:iterator value = " empleados " & gt;

& lttr & gt

& lttd & gt

& ltinput type="checkbox" name="id "

valor = ' & lts:valor de propiedad = " id "/>'/& gt;

</TD>

<td>

<s:valor del atributo= " id "/& gt;

& lt/TD & gt;

& lttd & gt

& lts:Valor del atributo = " nombre "/& gt;

& lt/TD & gt;

& lttd & gt

& lts:Valor del atributo = "teléfono"/& gt;

& lt/TD & gt;

& lttd & gt

& lts:valor del atributo = "dirección"/& gt;

& lt/TD & gt;

& lttd & gt

& lta

href = ' & lts:URL action = " editar " & gt; & lts :param nombre = " id " valor = " id "/& gt;& lt/s:URL & gt;'& gt

Modificar

& lta

href = ' & lts: Acción de URL = " eliminar " & gt; & lts:param nombre = " id " valor = " id "/& gt; & lt/s:URL & gt; >

& lt/TD & gt;

& lt/tr & gt;

& lt/s:iterador & gt;

& lt /tbody & gt;

& lt/table & gt;

& lts:sub

mit value = " eliminar "/& gt;

& lt/s:form & gt;

& lt/center & gt;

& lt/ cuerpo & gt;

& lt/html & gt;