Red de conocimiento informático - Problemas con los teléfonos móviles - La diferencia entre pilares y resortes

La diferencia entre pilares y resortes

I.Struts

Struts es parte del proyecto Jakarta de Apache Software Foundation. Struts es el rey indiscutible del actual framework Java Web

MVC. Después de cinco años de desarrollo, Struts se ha convertido en un marco estable y maduro y tiene la mayor participación de mercado entre todos los marcos MVC. Sin embargo,

Algunas características técnicas de Struts se han quedado atrás con respecto al marco MVC emergente (aquí Struts se refiere a la versión 1.0, y ahora ha lanzado la última versión 2.0). Al enfrentarse a

Spring MVC y Webwork2

estos marcos con diseños más complejos y mayor escalabilidad, Struts se ha enfrentado a desafíos sin precedentes. Pero desde la perspectiva del desarrollo de productos, Struts sigue siendo la opción más segura.

Struts tiene un conjunto de clases de colaboración (componentes), etiquetas Serlvet y jsp

lib. Las aplicaciones web basadas en el marco struts básicamente cumplen con los estándares de diseño de JSP

Model2, que se puede decir que es una variante del patrón de diseño MVC. Según la descripción anterior del marco, no es difícil entender por qué Struts es un marco web

y no solo una combinación de bibliotecas de etiquetas. Sin embargo, Struts

también incluye un rico conjunto de bibliotecas de etiquetas y clases de utilidades que funcionan independientemente del marco. Struts tiene su propio controlador e integra muchas otras tecnologías para implementar la capa de modelo y la capa de vista

. En la capa del modelo, Struts se puede integrar fácilmente con tecnologías de acceso a datos, incluidas EJB, JDBC y Object Relation

Bridge. En la capa de vista, Struts se puede combinar con JSP, Velocity Templates, XSL y otros componentes deseados en la capa de presentación.

La arquitectura de Struts

El marco de Struts es la encarnación del patrón MVC

Echemos un vistazo a la arquitectura de Struts desde la perspectiva del modelo. , ver y controlar respectivamente. Desde la perspectiva de View

Se crea principalmente mediante JSP (también puede usar otros, como Freemaker, que contiene un conjunto de bibliotecas de etiquetas extendidas personalizables (TagLib), que pueden simplificar la creación de. usuarios.Interfaz

proceso. Actualmente, estas extensiones incluyen etiquetas Bean, etiquetas HTML, etiquetas lógicas, etiquetas anidadas, etiquetas de plantilla

y bibliotecas de etiquetas múltiples. Para obtener más información sobre ellos, consulte el Manual del usuario de Struts.

Desde la perspectiva del modelo

Un modelo es principalmente una representación del estado del sistema (a veces, las operaciones de lógica de negocios que cambian el estado del sistema también se clasifican como modelos). En Struts, el estado del sistema está representado por ActiomForm

Bean, que normalmente no es persistente. Si necesita convertir este estado en un almacén de datos persistente, Struts proporciona el paquete Utitle, que le permite manipular fácilmente el repositorio de datos

.

Desde la perspectiva del controlador (Controlador) en el marco Struts

, el Controlador es principalmente ActionServlet, mientras que las operaciones de lógica de negocios se componen principalmente de Acción,

ActionMapping, ActionForward y otros componentes para coordinar la finalización (tal vez estos componentes deberían dividirse en una parte del modelo de lógica empresarial). Entre ellos, Action desempeña el papel de implementador real de la lógica empresarial, mientras que ActionMapping y ActionForward especifican la dirección de diferentes lógicas o procesos empresariales.

Expliquemos específicamente cómo Struts

controla y maneja las solicitudes de los clientes presentando los cuatro componentes principales de Struts. Estos componentes son la clase ActionServletAction

, Action Mapping (incluido ActionForward) y ActionFrom Bean.

2. Spring

Spring es en realidad la implementación específica de las ideas de diseño descritas en el libro "Expert One-to-One J2EE Design and

Development". . En "One-on-One", Rod Johnson aboga por ideas de diseño pragmático J2EE y proporciona una implementación preliminar de un marco de desarrollo (kit de herramientas de desarrollo interface21) junto con el libro.

Spring es una encarnación más completa y concreta de esta idea. Rod Johnson transformó y amplió aún más el kit de desarrollo de interface21 para convertirlo en un marco de desarrollo más abierto, claro, integral y eficiente.

Spring es un framework de código abierto creado por Rod

Johnson y presentado en su libro "La guía de programación para el diseño y desarrollo J2EE". Creado para hacer frente a las complejidades del desarrollo de aplicaciones empresariales, Spring hace posible utilizar JavaBeans básicos para hacer cosas que antes solo eran posibles utilizando EJB. Sin embargo, los usos de Spring no se limitan al desarrollo del lado del servidor. Cualquier aplicación Java puede beneficiarse de la simplicidad, la capacidad de prueba y el acoplamiento flexible de Spring

En resumen, Spring es un marco de contenedor ligero orientado a la inversión de control y al cortador. Por supuesto, esta descripción está un poco simplificada. Pero sí resume lo que hace Spring.

Para comprender mejor Spring, analicemos esta descripción:

1. Ligero

Spring es liviano en términos de tamaño y gastos generales. Todo el marco Spring se entrega en solo 1 MB más que el archivo JAR. Además, la sobrecarga de procesamiento requerida por Spring es insignificante. Además, Spring no es intrusivo: normalmente, los objetos en las aplicaciones Spring no dependen de ser livianos, y Spring es liviano en términos de tamaño y gastos generales

. El marco Spring completo se puede distribuir en un archivo JAR de poco más de 1 MB de tamaño. La sobrecarga de procesamiento requerida por Spring es insignificante. Además, Spring no es intrusivo

: normalmente, los objetos en una aplicación Spring no dependen de clases específicas de Spring.

2. Inversión de Control

Spring promueve un acoplamiento flojo a través de una técnica llamada Inversión de Control (IoC). Cuando se aplica IoC, los objetos transmiten pasivamente sus dependencias en lugar de crear o encontrar dependencias ellos mismos. ¿Crees que IoC es exactamente lo opuesto a JNDI? En lugar de que el objeto busque dependencias en el contenedor, el contenedor pasa las dependencias al objeto cuando se inicializa sin esperar una solicitud.

3. Vanguardia

Spring incluye un amplio soporte para programación de vanguardia y logra cohesión al separar la lógica empresarial de la aplicación de los servicios del sistema, como la auditoría y la gestión de transacciones. El objeto de la aplicación hace lo que se supone que debe hacer, completa la lógica empresarial y eso es todo. No son responsables (ni siquiera conocen) otros problemas del sistema, como el registro o el soporte de transacciones.

4. Contenedor

Spring contiene y gestiona la configuración y el ciclo de vida de los objetos de la aplicación. En este sentido, es un contenedor.

¿Puedes configurar cómo se crea cada bean?

Puedes crear una instancia separada de tu

bean basado en el prototipo de configuración, o generar una nueva instancia cada vez que sea necesario, y cómo se relacionan entre sí.

Sin embargo, Spring no debe confundirse con los voluminosos contenedores EJB tradicionales, que suelen ser grandes, engorrosos y difíciles de usar.

Framework: Spring configura y compone aplicaciones complejas a través de componentes simples. En Spring, los objetos de la aplicación se componen de forma declarativa, normalmente en archivos XML.

Spring también proporciona muchas funciones básicas (gestión de transacciones, integración del marco de persistencia, etc.) para que puedas desarrollar la lógica de la aplicación tú mismo.

Todas estas funciones de Spring le permitirán escribir código más limpio, más fácil de administrar y de probar. También proporcionan la base para varios submarcos en primavera.