¿Qué es el registro marco?
El siguiente es
un proceso simple de registro del framework Spring Hibernate de struts
1. Configuración básica
1.Java 5.0 .biz/. index.php?q=node/394
6.mysqlcc 0.94 /web/Soft/ShowSoftDown.asp?UrlID=1amp;SoftID=32
2.
1.java Descomprimir en C:\Program Files\Java
2.tomcat Descomprimir en C:\Program Files\Apache Software Foundation
3.mysql C:\Program Files\mysql
4. Mysql-connector-java-3.1.14-bin.jar descomprimido por el paquete del controlador mysql jdbc se coloca en el directorio common\lib de tomcat
Preparar archivos de prueba testjdbc.jsp, colóquelo en el directorio TOMCAT/webapps/root/, el contenido es el siguiente:
Primero cree una escuela de base de datos
lt @ page contentType= "text/html; conjunto de caracteres =GB2312" gt;
lt; @ página import="java.sql.*"
lt; >lt; BODYgt;
lt;
Cadena controlador="com.mysql.jdbc.Driver"
Cadena url="jdbc:mysql:/ /localhost:3306/school "; //Conectarse a la base de datos de la escuela
String userid="root"; //Usuario
String passwd="chen"; //Contraseña p>
intente {
Class.forName(driver
}
catch(Exception e){
out; .println("¡No se puede cargar el controlador Enter "!"
e.printStackTrace()
}
intente {
;Conexión con= DriverManager.getConnection(url, ID de usuario, contraseña);
if(!con.isClosed())
out.println("Conectado correctamente a la base de datos !");
con.close();
}
catch(SQLException SQLe){
out.println("¡No se puede conectar a la base de datos!");
}
gt;
lt;/BODYgt; lt; /HTMLgt;
Luego abre el navegador e ingresa la dirección mit();
//Listar todos los objetos
java.util.Listlt; ; lista =dao.findAll();
for(Bbsuser o: lista){
System.out.println(o.getUsername()); >System .out.println(o.getPassword());
}
}
}
4.Hibernate integra puntales
p>
Primero, agregue el objeto BbsuserDAO dao en RegisterAction, luego setter y getter, setDao en la inicialización y cree el objeto dao.
En segundo lugar, agregue el código de inserción de datos en la clase de prueba hibernateDAOTest a la Acción. Cámbielo ligeramente
//Entity class
Bbsuser user=new Bbsuser();
user.setUsername(registerForm.getUsername()); >
user.setPassword(registerForm.getPassword());
user.setAge(20);
//objeto DAO
BbsuserDAO dao= getDao();
//Iniciar transacción
Transacción tran=dao.getSession().beginTransaction();
dao.save(user); /p>
//Confirmar transacción
tran.commit();
Volver a publicar, ingresar en el navegador, agregado exitosamente.
STRUTS HIBERNATE se integró correctamente
5. Agregar función Spring
5.1 Al agregar Spring, la opción de biblioteca de etiquetas debe admitir la programación de struts, hibernate3 y aop, seleccione copiar. Opciones de biblioteca.
Primero debes agregar hibernate y luego agregar spring antes de poder usar spring para administrar hibernate. Presta atención a agregar sessionFactory Bean.
5.2 Agregar man Bean
Primero, agregue la clase man, el campo es mensaje, el método es setter y getter, y luego agregue el man Bean en applicationContext,
lt; bean id="hombre" nombre="man_name"
class="test.Man"gt
lt propiedad nombre="message"gt;
lt;valuegt;¡Hola! lt;/valuegt;
lt;/propertygt;
lt;/beangt;
En segundo lugar, escriba la clase de prueba, SpringTest.java
ApplicationContext ctx=new
ClassPathXmlApplicationContext("applicationContext.xml");
Man man=(Man)ctx.getBean("man"); p >System.out.println(man.sayHello());
Aquí debemos comprender completamente que el trabajo realizado por ApplicationContext es alojar negocios, similar al depósito de paquetes del centro comercial, usamos ctx para recuperar paquetes. . Bean es lógica empresarial y, a grandes rasgos, podemos considerarlo como un paquete o un negocio.
6.Spring integra Hibernate
6.1 Ingeniería inversa para generar Spring Hibernate dao
Preste atención a modificar el atributo del generador de id en el archivo de mapeo para asignar para incrementar
p>
Al mismo tiempo, modifique la fuente del archivo de mapeo en hibernación al archivo de mapeo de primavera
lt;!--
lt;recurso de mapeo="hibernatedao/Bbsuser.hbm.xml " /gt;
--gt
lt; recurso de mapeo="springdao/Bbsuser.hbm.xml" / gt;
6.2 Escribir la clase SpringDAOTest, como en SpringTest
ApplicationContext ctx=new
ClassPathXmlApplicationContext("applicationContext.xml"); p>//Clase de entidad
Bbsuser user=new Bbsuser();
user.setUsername("spring dao");
user.setPassword(" contraseña");
//Clase DAO
BbsuserDAO dao=(BbsuserDAO)ctx.getBean("BbsuserDAO");
dao.save(usuario) ;
Si la versión de MySQL no admite transacciones Después del procesamiento, también se puede almacenar en la base de datos.
6.3 Agregar administrador de transacciones
Muy buena plantilla administrada por Dao
lt; bean id="userDAOProxy"
// El usuario aquí hay un class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"gt;
lt;!-- Preste atención a este atributo para obtener un significado detallado, consulte los materiales de referencia al principio. del artículo Debe ser verdadero. Si usa CGLIB, no es necesario escribir una interfaz DAO: gt
lt;property name="proxyTargetClass"gt; >lt;valuegt;truelt;/valuegt;
lt;/propertygt;
lt;property name="transactionManager"gt
lt;ref bean; ="transactionManager" /gt;
lt;/propertygt;
lt;nombre de propiedad="target"gt
lt;ref local="BbsuserDAO " /gt;
lt;/ propiedadgt;
lt; nombre de propiedad="transactionAttributes"gt;
lt; propsgt;
lt;!-- La firma del método aquí puede ser precisa para el método, seamos perezosos y configuremos toda la configuración primero--gt;
lt; prop key="*"gt; propgt;
lt;/propsgt;
lt;/propertygt;
lt;/beangt
En este momento, BbsuserDAO dao=(BbsuserDAO)ctx.getBean("BbsuserDAO");
Cambie BbsuserDAO a BbsuserDAOProxy. Vuelva a compilar.
7. Simular clase de proxy de acción (SpringProxyAction) Spring integra struts
7.1 Implementación de la clase SpringProxyAction.java
/*
* Generado por MyEclipse Struts
* Ruta de la plantilla: templates/java/JavaClass.vtl
*/
paquete com.yourcompany.struts.action
importar java.util.*;
importar javax.servlet..yourcompany.struts.form.RegisterForm;
clase pública SpringProxyAction extiende Acción {
// mapa privado mapa = new HashMap();
// {
// map.put("/ssh/register.do", new RegisterAction())
// }
ejecución pública de ActionForward (mapeo de ActionMapping, formulario ActionForm,
solicitud HttpServletRequest, respuesta HttpServletResponse) {
Cadena ruta = request.getRequestURI();
System.out.println(ruta);
ApplicationContext ctx = nuevo
ClassPathXmlApplicationContext(
"applicationContext.xml");
// Acción acción = (Acción)map.get(ruta);
Acción acción = (Acción)ctx.getBean(ruta);
if(acción!= nulo) {
intenta {
return action.execute(mapeo, formulario,
solicitud, respuesta );
} catch (Excepción e) {
// TODO Bloque de captura generado automáticamente
e.printStackTrace(); >}
}
return mapeo.findForward("fallido"
}
}
Modifique el archivo de configuración de struts a
lt action
atributo="registerForm"
input="/form/register.jsp"
nombre="registerForm"
ruta="/register"
alcance="solicitud"
tipo="com.liu .struts.action.SpringProxyAction"gt;
lt; forward name="failed" path="/failed.jsp" /gt;
lt; forward name="éxito" path="/success.jsp" /gt;
lt;/actiongt;
Al mismo tiempo, agregue el bean de la clase proxy en applicationContext.xml
lt; nombre del frijol="/mydo/register.do"
Class="com.liu.struts.action.RegisterAction"gt
lt;/beangt;
7.2 El manejo de errores se maneja con el archivo log4j.properties
# Configurar el registro para pruebas: opcionalmente con el archivo de registro
log4j.rootLogger=WARN, stdout
p>
# log4j.rootLogger=WARN, salida estándar, archivo de registro
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout= org.apache.log4j. PatternLayout
log4j.appender.stdout.layout.ConversionPattern=d p [c] - mn
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=target/spring.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j .appender.logfile.layout .ConversionPattern=d p [c] - mn
Eliminar asm-2.2.3.jar (se producirá un error al integrar el resorte y los puntales)
7.3 resorte configuración del agente
●Modificar RegisterAction.java En este momento, Spring representará el almacenamiento de datos
// //Iniciar transacción
// Transacción tran=. dao.getSession().beginTransaction ();
// //
Confirmar transacción
// tran.commit();
● Modificar el nombre del paquete importado,
importar hibernate.Bbsuser -----gt ; importar springdao.Bbsuser;
importar hibernate.BbsuserDAO -----gt; importar springdao.BbsuserDAO
●Agregar mensaje de cadena privado
●Comentar el método setDao inicializado
public RegisterAction() {
//setDao(new BbsuserDAO());
}
●Al mismo tiempo, modifique las propiedades del bean de la clase proxy en applicationContext.xml
lt; bean name="/mydo/register.do"
Clase ="com.liu. struts.action.RegisterAction"gt;
//Esta propiedad está configurada para generar el mensaje
lt property name="message"gt; >
lt;valuegt; Hola integración de primavera strutslt;/valuegt;
lt;/propertygt
//Esta propiedad está configurada para agregar dao
lt; nombre de propiedad="dao"gt;
lt; ref bean="BbsuserDAOProxy" /gt
lt;/propertygt; / beangt;
7.4 Spring integra struts
●Agregar complemento Spring
lt; " gt;
lt; set-property property="contextConfigLocation" value="/WEB-
INF/classes/applicationContext.xml" /gt;
> lt;/plug-ingt;
●Reemplazar el tipo de acción
lt; action path="/register" …
type="org. springframework.web.struts.DelegatingActionProxy" /gt;
●En
Configurar beans en el archivo de configuración de Spring
Puntos clave: haga coincidir la ruta y el nombre del bean, estos dos valores deben ser iguales
bean name="/login; " class="com .test.struts.action.LoginAction"gt;lt;/beangt;
Inyectar bean proxy DAO
7.5 Dos formas para que Spring integre Struts
Hay dos formas para que struts1 cargue Spring: La primera forma: cargar el entorno de contexto de Spring a través de la configuración web.xml, el método de configuración es el siguiente: web.xml
lt; paramgt;
lt;param-namegt;contextConfigLocationlt;/param-namegt;
lt;param-valuegt;/WEB-INF/applicationContext.xmllt;/param-valuegt; /p>
lt;/ context-paramgt;
Cargar lt;listenergt a través del oyente;
lt;listener-classgt;org.springframework.web.context.ContextLoaderListenerlt; /listener-classgt;
lt;/listenergt;
O use la clase severlet para cargar
lt;servletgt; ;servlet-namegt; contextlt;/servlet-namegt ;
lt;servlet-classgt;org.springframework.web.context.ContextLoaderServletlt;/servlet-classgt
lt; -on-startupgt;1lt;/load-on -startupgt;
lt;/servletgt;
Segunda forma: utilizar el complemento Struts
en struts -config.xml lt;plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"gt
lt; set-property property="contextConfigLocation"
valor= "/WEB-INF/applicationContext.xml" /gt;
lt;/plug-ingt
La diferencia obvia entre estas dos configuraciones es que el primer método
De esta manera se pueden configurar varios archivos de configuración de Spring.