Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo desarrollar springmvc usando xml

Cómo desarrollar springmvc usando xml

El uso de springMVC también puede reemplazar a struts2. Por supuesto, solo reemplaza la función de distribución comercial. No tiene otras funciones de struts2; de lo contrario, ¿para qué sirve struts2?

A continuación utilizo springMVC en lugar de struts2 para integrar hibernate e implementar una función de consulta de empleado simple.

Hay dos archivos de configuración que deben configurarse cuando se usa springMVC, uno es applicationContext.xml y el otro es web.xml. Configure el administrador de transacciones y la inyección de atributos en applicationContext.xml. En web.xml, debe agregar un registro y mapeo de servlet springMVC (DispatcherServlet). Este servlet es el controlador central de springMVC, que se especializa en procesar cada solicitud y luego distribuirla al controlador comercial correspondiente para su procesamiento de acuerdo con el correspondiente. parámetros El controlador comercial Después del procesamiento, se devolverá una cadena al controlador central, y el controlador central redirigirá o reenviará a la página correspondiente según la cadena. También debe crear un archivo de configuración para el controlador central, en el formato: nombre del servlet del controlador central-servlet.xml, como springMVC-servlet.xml. El archivo de configuración se coloca en WEB-INF.

El contenido de applicationContext.xml es el siguiente:

lt;?xml version="1.0" encoding="UTF-8"?gt;

lt;beans xmlns=".dao.DeptDAO"gt;

lt;property name="sessionFactory"gt;

lt;ref bean="sessionFactory" /gt;

lt;/propertygt;

lt;/beangt;

lt;bean id="EmpDAO" class="com.dao.EmpDAO"gt;

lt;property name="sessionFactory"gt;

lt;ref bean="sessionFactory" /gt;

lt;/propertygt;

lt ;/beangt;

lt;bean id="empService" class="com.service.EmpService"gt;

lt;property name="deptDAO" ref= "DeptDAO" gt;lt;/propertygt;

lt;property name="empDAO" ref="EmpDAO"gt;lt;/propertygt;

lt;/beangt;

lt;!--Transaction Manager--gt;

lt;bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"gt;

lt;property name="sessionFactory" ref="sessionFactory"gt;lt;/propertygt;

lt;/beangt;

lt;!-- Propiedades de transacción -- gt;

lt; tx: consejo id="mytx" administrador de transacciones="transactionManager" gt;

ltx: atributosgt; lt; tx: nombre del método="*"/gt;

lt; /tx: atributosgt; !- - tejido --gt;

lt;aop:configgt;

lt;aop:advisor asesoramiento-ref="mytx" pointcut="execution(* com.service. * .*(..))"/gt;

lt;/aop:configgt;

lt;/beansgt;

El contenido de web. xml es el siguiente:

lt;?xml version="1.0" encoding="UTF-8"?gt;

lt;web-app version="2.5" xmlns= "/xml/ns/javaee"

xmlns:xsi="/xml/ns/javaee

/xml/ns/javaee/web-app_2_5.xsd"gt;

lt;!--Especifique la ruta de otra configuración--gt;

lt;context-paramgt;

lt;param-namegt;contextConfigLocationlt;/param-namegt;

lt;param-valuegt;/WEB-INF/classes/app*.xmllt;/param-valuegt;

lt;/context-paramgt;

lt;!--Filtro para controlar el cambio de sesión--gt;

lt;filtergt;

lt;filter-namegt;openSessionlt;/filter-namegt;

lt;filter-classgt;org.springframework.orm.hibernate3.support.OpenSessionInViewFilterlt;/filter-classgt;

lt;/filtergt;

lt;filter-mappinggt;

lt;filter-namegt;openSessionlt;/filter-namegt;

lt ; url-patterngt;/*lt;/url-patterngt;

lt;/filter-mappinggt;

lt;!-- Cargar applicationContext.xml --gt;

p>

lt;listenergt;

lt;listener-classgt;org.springframework.web.context.ContextLoaderListenerlt;/listener-classgt;

lt;/listenergt;

lt;!-- registro y mapeo de springMVC--gt;

lt;servletgt;

lt;servlet-namegt;springMVClt;/servlet-namegt

lt;servlet-classgt;org.springframework.web.servlet.DispatcherServletlt;/servlet-classgt;

lt;/servletgt;

lt; servlet -mappinggt;

lt;servlet-namegt;springMVClt;/servlet-namegt;

lt;url-patterngt;*.dolt;/url-patterngt;

lt;/servlet-mappinggt;

lt;welcome-file-listgt;

lt;welcome-filegt;index.jsplt;/welcome-filegt;

lt;/welcome-file-listgt;

lt;login-configgt;

lt;auth-methodgt;BASIClt;/auth-methodgt;

lt

;/login-configgt;

lt;/web-appgt;

El contenido de springMVC-servlet.xml es el siguiente:

lt;?xml versión=" 1.0" codificación="UTF-8"?gt;

lt;beans xmlns="ponent-scan base-package="com.action"gt;lt;/context: componente-scangt ;

p>

lt;/beansgt;

El código de la clase EmpAction es el siguiente:

paquete com.action;

importar java.util.List;

p>

importar javax.servlet..service.EmpService;

@Controller

@RequestMapping("/emp .do")

clase pública EmpAction {

@Autowired

empService privado empService;

@RequestMapping(params="p= getAll")

cadena pública getAll (solicitud HttpServletRequest, respuesta HttpServletResponse){

Lista lista = empService.getAllEmp();

request.setAttribute("lista ", lista);

return "/WEB-INF/view/show.jsp";

}

}

@ Controlador significa que el método es un controlador comercial; @RequestMapping ("/emp.do") significa que al solicitar emp.do, el controlador central se distribuirá al controlador comercial para su procesamiento

@RequestMapping; (params="p=getAll") significa que cuando la solicitud Cuando el parámetro es p=getAll, este método del controlador comercial se llama "/WEB-INF/view/show.jsp" y se devuelve al controlador central; y el controlador central lo reenvía a la página WEB-INF/view/show.jsp. Muestra toda la información de los empleados

La diferencia entre springMVC y struts2:

1. La entrada de spring mvc es servlet, mientras que struts2 es filtro, lo que conduce a diferentes mecanismos entre los dos.

2. Rendimiento: el resorte será ligeramente más rápido que los puntales. Spring mvc se basa en el diseño de métodos, mientras que sturts se basa en clases. Cada vez que se realiza una solicitud, se creará una instancia de una acción y se inyectarán atributos en cada acción. Spring se basa en métodos, con una granularidad más fina, pero debe hacerlo. tenga cuidado de controlar los datos como en los servlets. Spring3 mvc es una interceptación a nivel de método. Después de interceptar el método, los datos de la solicitud se inyectan en él de acuerdo con las anotaciones en los parámetros. En spring3 mvc, un método corresponde a un contexto de solicitud.

El marco de struts2 es una interceptación a nivel de clase. Cada vez que llega una solicitud, se crea una Acción y luego se llama al método setter getter para inyectar los datos en la solicitud. struts2 en realidad procesa la solicitud a través del método setter getter; struts2, un objeto de acción Corresponde a un contexto de solicitud.

3. Paso de parámetros: cuando Struts acepta parámetros, puede usar atributos para aceptar parámetros, lo que significa que los parámetros son compartidos por múltiples métodos.

4. En términos de filosofía de diseño: struts está más en línea con la filosofía de programación de oop, mientras que spring es más cauteloso y expande los servlets.

5. Mecanismo de implementación del interceptor: struts tiene su propio mecanismo interceptor y spring mvc utiliza un método AOP independiente. Como resultado, la cantidad de archivos de configuración de struts es aún mayor que la de spring mvc. Aunque la configuración de struts se puede heredar, creo que en términos de uso, spring mvc es más conciso de usar y la eficiencia de desarrollo de spring MVC. es de hecho más alto que struts2. Spring MVC es una interceptación a nivel de método. Un método corresponde a un contexto de solicitud y el método también corresponde a una URL. Por lo tanto, desde la arquitectura misma, spring3 MVC facilita la implementación de URL tranquilas. Struts2 es una interceptación a nivel de clase. Una clase corresponde a un contexto de solicitud; es difícil implementar una URL tranquila, porque un método de acción de struts2 puede corresponder a una URL pero sus atributos de clase son compartidos por todos los métodos, lo que lo hace imposible; utilizar anotaciones u otras formas de identificar el método al que pertenece. Los métodos de spring3 mvc son básicamente independientes, con acceso exclusivo a los datos de respuesta de la solicitud. Los datos de la solicitud se obtienen a través de parámetros y los resultados del procesamiento se devuelven al marco a través de ModelMap. Las variables no se comparten entre métodos, pero struts2 es más complicado. Aunque los métodos también son independientes, todas sus variables de acción son compartidas. Esto no afectará la ejecución del programa, pero nos causará problemas al codificar y leer el programa.

6. Además, la verificación de spring3 mvc también es un punto destacado. Es compatible con JSR303 y es más conveniente para manejar solicitudes ajax. Solo necesita una anotación @ResponseBody y luego devuelve directamente el texto de respuesta.