De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

El Spring Framework es un framework de aplicaciones y la inversión de control contenedor para la plataforma Java . Las funciones principales del marco pueden ser utilizadas por cualquier aplicación Java, pero existen extensiones para crear aplicaciones web sobre la plataforma Java EE (Enterprise Edition). Aunque el marco no impone ningún modelo de programación específico , se ha vuelto popular en la comunidad Java como una adición al modelo Enterprise JavaBeans (EJB). Spring Framework es de código abierto .

Historial de versiones [ editar ]

La primera versión fue escrita por Rod Johnson , quien lanzó el marco con la publicación de su libro Expert One-on-One J2EE Design and Development en octubre de 2002. El marco se lanzó por primera vez bajo la licencia Apache 2.0 en junio de 2003. La primera producción versión 1.0, se lanzó en marzo de 2004. [2] El marco Spring 1.2.6 ganó un premio de productividad Jolt y un premio a la innovación JAX en 2006. [3] [4] Spring 2.0 se lanzó en octubre de 2006, Spring 2.5 en noviembre 2007, Spring 3.0 en diciembre de 2009, Spring 3.1 en diciembre de 2011 y Spring 3.2.5 en noviembre de 2013. [5]Spring Framework 4.0 se lanzó en diciembre de 2013. [6] Las mejoras notables en Spring 4.0 incluyeron soporte para Java SE (Standard Edition) 8, Groovy 2, algunos aspectos de Java EE 7 y WebSocket .

Spring Framework 4.2.0 se lanzó el 31 de julio de 2015 y se actualizó inmediatamente a la versión 4.2.1, que se lanzó el 1 de septiembre de 2015. [7] Es "compatible con Java 6, 7 y 8, con un enfoque en las mejoras principales y capacidades web modernas " . [8]

Resorte del marco 4.3 ha sido liberado el 10 de junio de 2016 y será apoyado hasta 2020. [9] Se "será la generación final dentro de los requisitos del sistema de Primavera general 4 (Java 6+, Servlet 2.5+), [...]" . [10]

Se anuncia que Spring 5 se basará en Reactor Core compatible con Reactive Streams . [11]

Módulos [ editar ]

Spring Framework incluye varios módulos que brindan una variedad de servicios:

  • Spring Core Container: este es el módulo base de Spring y proporciona contenedores de primavera (BeanFactory y ApplicationContext). [12]
  • Programación orientada a aspectos : permite implementar preocupaciones transversales .
  • Autenticación y autorización : procesos de seguridad configurables que admiten una variedad de estándares, protocolos, herramientas y prácticas a través del subproyecto Spring Security (anteriormente Acegi Security System for Spring).
  • Convención sobre configuración : en el módulo Spring Roo se ofrece una solución de desarrollo de aplicaciones rápido para aplicaciones empresariales basadas en Spring.
  • Acceso a datos : trabajar con sistemas de administración de bases de datos relacionales en la plataforma Java utilizando Java Database Connectivity (JDBC) y herramientas de mapeo relacional de objetos y con bases de datos NoSQL
  • Inversión del contenedor de control : configuración de los componentes de la aplicación y gestión del ciclo de vida de los objetos Java, principalmente a través de la inyección de dependencias
  • Mensajería: registro configurativo de objetos de escucha de mensajes para el consumo transparente de mensajes de las colas de mensajes a través de Java Message Service (JMS), mejora del envío de mensajes sobre las API JMS estándar
  • Modelo-vista-controlador : un marco basado en HTTP y servlet que proporciona enlaces para la extensión y personalización de aplicaciones web y servicios web RESTful (transferencia de estado representacional).
  • Marco de acceso remoto: clasificación al estilo de llamada de procedimiento remoto configurativo (RPC) de objetos Java a través de redes que admiten la invocación de método remoto de Java (RMI), CORBA (Arquitectura de agente de solicitud de objeto común) y protocolos basados ​​en HTTP que incluyen servicios web ( SOAP (Acceso simple a objetos Protocolo) )
  • Gestión de transacciones : unifica varias API de gestión de transacciones y coordina transacciones para objetos Java
  • Gestión remota: exposición configurativa y gestión de objetos Java para configuración local o remota a través de Java Management Extensions (JMX)
  • Pruebas : clases de apoyo para la redacción de pruebas unitarias y pruebas de integración

Inversión del contenedor de control (inyección de dependencia) [ editar ]

El elemento central de Spring Framework es su contenedor de inversión de control (IoC), que proporciona un medio coherente para configurar y administrar objetos Java mediante la reflexión . El contenedor es responsable de administrar los ciclos de vida de los objetos específicos: crear estos objetos, llamar a sus métodos de inicialización y configurar estos objetos conectándolos.

Los objetos creados por el contenedor también se denominan objetos administrados o beans . El contenedor se puede configurar cargando archivos XML (Extensible Markup Language) o detectando anotaciones Java específicas en clases de configuración. Estas fuentes de datos contienen las definiciones de frijoles que proporcionan la información necesaria para crear los frijoles.

Los objetos se pueden obtener mediante búsqueda de dependencias o inyección de dependencias. [13] La búsqueda de dependencias es un patrón en el que una persona que llama le pide al objeto contenedor un objeto con un nombre específico o de un tipo específico. La inyección de dependencia es un patrón en el que el contenedor pasa objetos por su nombre a otros objetos, a través de constructores , propiedades o métodos de fábrica .

En muchos casos, no es necesario usar el contenedor cuando se usan otras partes de Spring Framework, aunque su uso probablemente hará que una aplicación sea más fácil de configurar y personalizar. El contenedor Spring proporciona un mecanismo coherente para configurar aplicaciones y se integra con casi todos los entornos Java, desde aplicaciones de pequeña escala hasta aplicaciones de grandes empresas.

El contenedor se puede convertir en un contenedor EJB (Enterprise JavaBeans) 3.0 parcialmente compatible mediante el proyecto Pitchfork. Algunos [ ¿quién? ] critican el Spring Framework por no cumplir con los estándares. [14] Sin embargo, SpringSource no ve el cumplimiento de EJB 3 como un objetivo principal y afirma que Spring Framework y el contenedor permiten modelos de programación más potentes. [15]El programador no crea directamente un objeto, sino que describe cómo debe crearse, definiéndolo en el archivo de configuración de Spring. Del mismo modo, los servicios y componentes no se llaman directamente; en su lugar, un archivo de configuración de Spring define qué servicios y componentes deben llamarse. Este IoC está destinado a aumentar la facilidad de mantenimiento y prueba.

Marco de programación orientado a aspectos [ editar ]

Spring Framework tiene su propio marco de programación orientada a aspectos (AOP) que modulariza las preocupaciones transversales en aspectos . La motivación para crear un marco AOP separado proviene de la creencia de que debería ser posible proporcionar características básicas de AOP sin demasiada complejidad en el diseño, implementación o configuración. El marco Spring AOP también aprovecha al máximo el contenedor Spring.

El marco de Spring AOP se basa en patrones de proxy y se configura en tiempo de ejecución . Esto elimina la necesidad de un paso de compilación o tejido en tiempo de carga. Por otro lado, la interceptación solo permite la ejecución de métodos públicos en objetos existentes en un punto de unión .

Comparado con el framework AspectJ , Spring AOP es menos poderoso, pero también menos complicado. Spring 1.2 incluye soporte para configurar aspectos de AspectJ en el contenedor. Spring 2.0 agregó más integración con AspectJ; por ejemplo, el lenguaje pointcut se reutiliza y se puede mezclar con aspectos basados ​​en Spring AOP. Además, Spring 2.0 agregó una biblioteca Spring Aspects que usa AspectJ para ofrecer características comunes de Spring, como la administración declarativa de transacciones y la inyección de dependencias a través de AspectJ en tiempo de compilación o tejido en tiempo de carga. SpringSource también usa AspectJ AOP en otros proyectos de Spring como Spring Roo y Spring Insight, y Spring Security también ofrece una biblioteca de aspectos basada en AspectJ.

Spring AOP ha sido diseñado para que pueda trabajar con preocupaciones transversales dentro de Spring Framework. Cualquier objeto creado y configurado por el contenedor se puede enriquecer con Spring AOP.

Spring Framework utiliza Spring AOP internamente para la gestión de transacciones, seguridad, acceso remoto y JMX .

Desde la versión 2.0 del marco, Spring proporciona dos enfoques para la configuración de AOP:

  • enfoque basado en esquemas [16] y
  • @ Estilo de anotación basado en AspectJ. [17]
<beans  xmlns = "http://www.springframework.org/schema/beans"  xmlns: mvc = "http://www.springframework.org/schema/mvc"  xmlns: xsi = "http: //www.w3 .org / 2001 / XMLSchema-instance "  xmlns: aop = " http://www.springframework.org/schema/aop "  xmlns: context = " http://www.springframework.org/schema/context "  xsi: schemaLocation = "http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans.xsd  http://www.springframework.org/schema/context  http: / /www.springframework.org/schema/context/spring-context.xsd  http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd  http://www.springframework.org/schema/aop  http://www.springframework.org/schema/aop/spring-aop. xsd " >

El equipo de Spring decidió no introducir nueva terminología relacionada con AOP; por lo tanto, en la API y la documentación de referencia de Spring, términos como aspecto , punto de unión, consejo , corte de punto, introducción, objeto de destino ( objeto aconsejado ), proxy AOP y tejido tienen todos los mismos significados que en la mayoría de los otros marcos AOP (particularmente AspectJ ).

Marco de acceso a datos [ editar ]

El marco de acceso a datos de Spring aborda las dificultades comunes que enfrentan los desarrolladores cuando trabajan con bases de datos en aplicaciones. Se proporciona soporte para todos los marcos de acceso a datos populares en Java: JDBC, iBatis / MyBatis , Hibernate , Java Data Objects (JDO, descontinuado desde 5.x), Java Persistence API (JPA), Oracle TopLink , Apache OJB y Apache Cayenne , entre otros.

Para todos estos marcos compatibles, Spring proporciona estas características

  • Gestión de recursos: adquisición y liberación automática de recursos de bases de datos
  • Manejo de excepciones: traducción de la excepción relacionada con el acceso a los datos a una jerarquía de acceso a los datos de Spring
  • Participación en transacciones: participación transparente en transacciones en curso
  • Desempaquetado de recursos: recuperación de objetos de base de datos de envoltorios del grupo de conexiones
  • Abstracción para el manejo de objetos grandes binarios (BLOB) y objetos grandes de caracteres (CLOB)

Todas estas características están disponibles cuando se utilizan clases de plantilla proporcionadas por Spring para cada marco compatible. Los críticos han dicho que estas clases de plantillas son intrusivas y no ofrecen ninguna ventaja sobre el uso (por ejemplo) de la API de Hibernate directamente. [18] [ Verificación fallida ] En respuesta, los desarrolladores de Spring han hecho posible usar las API de Hibernate y JPA directamente. Sin embargo, esto requiere una gestión de transacciones transparente, ya que el código de la aplicación ya no asume la responsabilidad de obtener y cerrar los recursos de la base de datos y no admite la traducción de excepciones.

Junto con la gestión de transacciones de Spring, su marco de acceso a datos ofrece una abstracción flexible para trabajar con marcos de acceso a datos. Spring Framework no ofrece una API de acceso a datos común; en su lugar, se mantiene intacta toda la potencia de las API compatibles. Spring Framework es el único marco disponible en Java que ofrece entornos de acceso a datos administrados fuera de un servidor de aplicaciones o contenedor. [19]

Al usar Spring para la gestión de transacciones con Hibernate, es posible que sea necesario configurar los siguientes beans:

  • Una fuente de datos como com.mchange.v2.c3p0.ComboPooledDataSourceoorg.apache.commons.dbcp.BasicDataSource
  • Una SessionFactory como org.springframework.orm.hibernate3.LocalSessionFactoryBeancon un atributo DataSource
  • Propiedades como Hibernate org.springframework.beans.factory.config.PropertiesFactoryBean
  • Un TransactionManager como org.springframework.orm.hibernate3.HibernateTransactionManagercon un atributo SessionFactory

Otros puntos de configuración incluyen:

  • Una configuración AOP de puntos de corte.
  • Semántica de transacción de asesoramiento AOP [ aclarar ] .

Gestión de transacciones [ editar ]

El marco de gestión de transacciones de Spring aporta un mecanismo de abstracción a la plataforma Java. Su abstracción es capaz de:

  • trabajar con transacciones locales y globales (la transacción local no requiere un servidor de aplicaciones )
  • trabajar con transacciones anidadas
  • trabajando con puntos de guardado
  • trabajando en casi todos los entornos de la plataforma Java

En comparación, Java Transaction API (JTA) solo admite transacciones anidadas y transacciones globales, y requiere un servidor de aplicaciones (y en algunos casos también la implementación de aplicaciones en un servidor de aplicaciones).

Spring Framework envía un PlatformTransactionManager para una serie de estrategias de gestión de transacciones:

  • Transacciones gestionadas en una conexión JDBC
  • Transacciones gestionadas en Unidades de trabajo de mapeo relacional de objetos
  • Transacciones gestionadas a través de JTA TransactionManager y UserTransaction
  • Transacciones administradas en otros recursos, como bases de datos de objetos

Junto a este mecanismo de abstracción, el marco también proporciona dos formas de agregar la gestión de transacciones a las aplicaciones:

  • Programáticamente, usando Spring's TransactionTemplate
  • Configurativamente, mediante el uso de metadatos como XML o anotaciones Java (@Transactional, etc.)

Junto con el marco de acceso a datos de Spring, que integra el marco de gestión de transacciones, es posible configurar un sistema transaccional a través de la configuración sin tener que depender de JTA o EJB . El marco transaccional también se integra con motores de mensajería y almacenamiento en caché .

Marco modelo-vista-controlador [ editar ]

Presentación de Spring MVC / Web Reactive a cargo de Juergen Hoeller

Spring Framework presenta su propio marco de aplicación web modelo-vista-controlador (MVC) , que no fue planeado originalmente. Los desarrolladores de Spring decidieron escribir su propio marco web como reacción a lo que percibieron como el diseño deficiente del (entonces) popular marco web Jakarta Struts , [20] así como deficiencias en otros marcos disponibles. En particular, consideraron que no había una separación suficiente entre las capas de presentación y manejo de solicitudes, y entre la capa de manejo de solicitudes y el modelo. [21]

Al igual que Struts, Spring MVC es un marco basado en solicitudes. El marco define interfaces de estrategia para todas las responsabilidades que deben ser manejadas por un marco moderno basado en solicitudes. El objetivo de cada interfaz es ser simple y claro para que sea fácil para los usuarios de Spring MVC escribir sus propias implementaciones, si así lo desean. MVC allana el camino para un código frontal más limpio. Todas las interfaces están estrechamente acopladas a la API de Servlet . Algunos consideran que este acoplamiento estrecho con la API de Servlet es un fracaso por parte de los desarrolladores de Spring para ofrecer una abstracción de alto nivel para aplicaciones basadas en web [ cita requerida ]. Sin embargo, este acoplamiento asegura que las características de la API de Servlet permanezcan disponibles para los desarrolladores al mismo tiempo que ofrece un marco de alta abstracción para facilitar el trabajo con él.

La clase DispatcherServlet es el controlador frontal [22] del marco y es responsable de delegar el control a las diversas interfaces durante las fases de ejecución de una solicitud HTTP .

Las interfaces más importantes definidas por Spring MVC y sus responsabilidades se enumeran a continuación:

  • Controlador: se interpone entre Model y View para administrar las solicitudes entrantes y redirigir a la respuesta adecuada. El controlador asignará la solicitud http a los métodos correspondientes. Actúa como una puerta que dirige la información entrante. Cambia entre entrar en modelo o vista.
  • HandlerAdapter: ejecución de objetos que manejan solicitudes entrantes
  • HandlerInterceptor: interceptación de solicitudes entrantes comparable, pero no igual a los filtros de Servlet (el uso es opcional y no está controlado por DispatcherServlet).
  • HandlerMapping: selección de objetos que manejan solicitudes entrantes (manejadores) en función de cualquier atributo o condición interna o externa a esas solicitudes
  • LocaleResolver: resolver y, opcionalmente, guardar la configuración regional de un usuario individual
  • MultipartResolver: facilite el trabajo con cargas de archivos envolviendo las solicitudes entrantes
  • Vista: responsable de devolver una respuesta al cliente. Algunas solicitudes pueden ir directamente a la vista sin ir a la parte del modelo; otros pueden pasar por los tres.
  • ViewResolver: selección de una vista basada en un nombre lógico para la vista (el uso no es estrictamente necesario)

Cada interfaz de estrategia anterior tiene una responsabilidad importante en el marco general. Las abstracciones que ofrecen estas interfaces son poderosas, por lo que para permitir un conjunto de variaciones en sus implementaciones, Spring MVC se envía con implementaciones de todas estas interfaces y, en conjunto, ofrece un conjunto de características además de la API de Servlet. Sin embargo, los desarrolladores y proveedores son libres de escribir otras implementaciones. Spring MVC usa la java.util.Mapinterfaz Java como una abstracción orientada a datos para el Modelo donde se espera que las claves sean valores de cadena.

La facilidad de probar las implementaciones de estas interfaces parece una ventaja importante del alto nivel de abstracción que ofrece Spring MVC. DispatcherServlet está estrechamente acoplado al contenedor Spring de inversión de control para configurar las capas web de aplicaciones. Sin embargo, las aplicaciones web pueden usar otras partes de Spring Framework, incluido el contenedor, y optar por no usar Spring MVC.

Un flujo de trabajo de Spring MVC [ editar ]

Cuando un usuario hace clic en un enlace o envía un formulario en su navegador web, la solicitud va a Spring DispatcherServlet. DispatcherServlet es un controlador frontal en Spring MVC. Consulta una o más asignaciones de manejadores. DispatcherServlet ha sido elegido como un controlador apropiado y le reenvía la solicitud. El controlador procesa la solicitud en particular y genera un resultado. Se conoce como modelo. Esta información debe formatearse en html o en cualquier tecnología de interfaz de usuario como JSP. Esta es la Vista de una aplicación. Toda la información está en el objeto MODELO Y VISTA. Cuando el controlador no está acoplado a una vista en particular, DispatcherServlet encuentra el JSP real con la ayuda de ViewResolver.

Configuración de DispatcherServlet [ editar ]

DispatcherServlet debe configurarse en web.xml

<servlet>  <servlet-name> MyServlet </servlet-name>  <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> </servlet><servlet-mapping>  <servlet-name> MyServlet </servlet-name>  <url-pattern> / <url-pattern> </servlet-mapping>

Marco de acceso remoto [ editar ]

El marco de acceso remoto de Spring es una abstracción para trabajar con varias tecnologías basadas en RPC ( llamada a procedimiento remoto ) disponibles en la plataforma Java, tanto para la conectividad del cliente como para ordenar objetos en servidores. La característica más importante que ofrece este marco es facilitar la configuración y el uso de estas tecnologías tanto como sea posible mediante la combinación de inversión de control y AOP.

El marco también proporciona recuperación de fallos (reconexión automática después de un fallo de conexión) y algunas optimizaciones para el uso del lado del cliente de beans de sesión sin estado remotos EJB .

Spring proporciona soporte para estos protocolos y productos listos para usar

  • Protocolos basados ​​en HTTP
    • Hessian : protocolo de serialización binario, de código abierto y mantenido por protocolos basados ​​en CORBA
    • RMI (1): invocaciones de métodos que utilizan la infraestructura RMI pero específicas de Spring
    • RMI (2): invocaciones de métodos que utilizan interfaces RMI que cumplen con el uso regular de RMI
    • RMI-IIOP ( CORBA ): invocaciones de métodos utilizando RMI-IIOP / CORBA
  • Integración del cliente Enterprise JavaBean
    • Conectividad de beans de sesión sin estado EJB local: conexión a beans de sesión sin estado locales
    • Conectividad de bean de sesión sin estado EJB remoto: conexión a beans de sesión sin estado remotos
  • JABÓN
    • Integración con el marco de servicios web de Apache Axis

Apache CXF proporciona integración con Spring Framework para la exportación de objetos al estilo RPC en el lado del servidor.

La configuración tanto del cliente como del servidor para todos los protocolos y productos de estilo RPC admitidos por el marco de acceso Spring Remote (excepto para el soporte de Apache Axis) se configura en el contenedor Spring Core.

Existe una implementación alternativa de código abierto (Cluster4Spring) de un subsistema remoto incluido en Spring Framework que está destinado a admitir varios esquemas de comunicación remota (1-1, 1-muchos, descubrimiento de servicios dinámicos) ...

Desarrollo rápido de aplicaciones de convención sobre configuración [ editar ]

Spring Boot [ editar ]

Spring Boot es la solución de Spring Boot -over-configuration para crear aplicaciones independientes basadas en Spring de grado de producción que puede "simplemente ejecutar". [23] Está preconfigurado con la "opinión obstinada" del equipo de Spring de la mejor configuración y uso de la plataforma Spring y bibliotecas de terceros para que pueda comenzar con el mínimo esfuerzo. La mayoría de las aplicaciones de Spring Boot necesitan muy poca configuración de Spring. Características:

  • Cree aplicaciones independientes de Spring
  • Incruste Tomcat o Jetty directamente (no es necesario implementar archivos WAR )
  • Proporcione modelos de objetos de proyecto (POM) 'de inicio' obstinados para simplificar su configuración de Maven
  • Configure Spring automáticamente siempre que sea posible
  • Proporcione funciones listas para producción, como métricas , comprobaciones de estado y configuración externa.
  • Absolutamente sin generación de código y sin requisitos de configuración XML.

Spring Roo [ editar ]

Spring Roo es un proyecto comunitario que proporciona un enfoque alternativo basado en la generación de código para utilizar la convención sobre la configuración para crear rápidamente aplicaciones en Java . Actualmente es compatible con Spring Framework, Spring Security y Spring Web Flow . Roo se diferencia de otros marcos de desarrollo de aplicaciones rápidos al centrarse en:

  • Extensibilidad (a través de complementos)
  • Productividad de la plataforma Java (a diferencia de otros lenguajes)
  • Evitación de bloqueo (Roo se puede quitar en unos minutos desde cualquier aplicación)
  • Evitación del tiempo de ejecución (con ventajas de implementación asociadas)
  • Usabilidad (particularmente a través de las características del shell y los patrones de uso)

Marco de lote [ editar ]

Spring Batch es un marco para el procesamiento por lotes que proporciona funciones reutilizables que son esenciales para procesar grandes volúmenes de registros, que incluyen:

  • registro / rastreo
  • Gestión de transacciones
  • estadísticas de procesamiento de trabajos
  • reinicio del trabajo

También proporciona funciones y servicios técnicos más avanzados que permitirán trabajos por lotes de gran volumen y alto rendimiento a través de optimizaciones y técnicas de partición. Spring Batch ejecuta una serie de trabajos; un trabajo consta de muchos pasos y cada paso consta de una tarea LEER-PROCESAR-ESCRIBIR o una tarea de operación única (tasklet).

El proceso "LEER-PROCESAR-ESCRIBIR" consta de estos pasos: "leer" datos de un recurso ( valores separados por comas (CSV), XML o base de datos), "procesarlos" y luego "escribirlos" en otros recursos ( CSV, XML o base de datos). Por ejemplo, un paso puede leer datos de un archivo CSV, procesarlos y escribirlos en la base de datos. Spring Batch proporciona muchas clases para leer / escribir CSV, XML y bases de datos.

Para una tarea de operación "única" (tasklet), significa realizar una sola tarea, como limpiar los recursos antes o después de que se inicie o complete un paso.

Los pasos se pueden encadenar para que se ejecuten como un trabajo.

Marco de integración [ editar ]

Spring Integration es un marco para la integración de aplicaciones empresariales que proporciona funciones reutilizables esenciales para la mensajería o arquitecturas impulsadas por eventos.

  • enrutadores: enruta un mensaje a un canal de mensajes según las condiciones
  • transformadores: convierte / transforma / cambia la carga útil del mensaje y crea un nuevo mensaje con carga útil transformada
  • adaptadores: para integrarse con otras tecnologías y sistemas (HTTP, AMQP (Protocolo de cola de mensajes avanzado), JMS (Servicio de mensajes Java), XMPP (Protocolo de presencia y mensajería extensible), SMTP (Protocolo simple de transferencia de correo), IMAP (Protocolo de acceso a mensajes de Internet) ), FTP (Protocolo de transferencia de archivos), así como FTPS / SFTP , sistemas de archivos, etc.)
  • filtros: filtra un mensaje según los criterios. Si no se cumplen los criterios, el mensaje se descarta.
  • activadores de servicio: invocan una operación en un objeto de servicio
  • gestión y auditoría

Spring Integration admite arquitecturas basadas en tuberías y filtros.

Ver también [ editar ]

  • Tapiz Apache
  • Google Guice
  • Hibernate (marco)
  • Lista de marcos de Java
  • Comparación de frameworks web

Referencias [ editar ]

  1. ^ "Versión 5.3.4" . 16 de febrero de 2021 . Consultado el 27 de febrero de 2021 .
  2. ^ "Spring Framework 1.0 Final lanzado" . Blog oficial de Spring Framework . 24 de marzo de 2014 . Consultado el 1 de marzo de 2021 .
  3. ^ Ganadores de Jolt 2006
  4. ^ "JAX Innovation Award Gewinner 2006" . Archivado desde el original el 17 de agosto de 2009 . Consultado el 12 de agosto de 2009 .
  5. ^ "Spring Framework 3.2.5 Released". Official Spring website. 7 Nov 2013. Retrieved 16 October 2016.
  6. ^ SpringSource.org
  7. ^ Spring Official Blog
  8. ^ Spring Official Blog
  9. ^ Spring release blog
  10. ^ Spring Official Blog
  11. ^ Reactive Spring
  12. ^ Spring Framework documentation for the Core Container
  13. ^ What is the difference between the depencylookup and dependency injection - Spring Forum. Forum.springsource.org (2009-10-28). Retrieved on 2013-11-24.
  14. ^ Spring VS EJB3
  15. ^ "Pitchfork FAQ". Retrieved 2006-06-06.
  16. ^ Spring AOP XML Configuration
  17. ^ AspectJ Annotation Configuration
  18. ^ Hibernate VS Spring
  19. ^ "Spring Data JPA for Abstraction of Queries". Retrieved 2018-02-06.
  20. ^ Introduction to the Spring Framework
  21. ^ Johnson, Expert One-on-One J2EE Design and Development, Ch. 12. et al.
  22. ^ Patterns of Enterprise Application Architecture: Front Controller
  23. ^ Spring Boot

Bibliography[edit]

  • Mak, Gary (September 1, 2010). Spring Recipes: A Problem-Solution Approach (Second ed.). Apress. p. 1104. ISBN 1-4302-2499-1.
  • Walls, Craig (November 28, 2010). Spring in Action (Third ed.). Manning. p. 700. ISBN 1-935182-35-8.
  • Walls, Craig; Breidenbach, Ryan (August 16, 2007). Spring in Action (Second ed.). Manning. p. 650. ISBN 1-933988-13-4.
  • Johnson, Rod; Höller, Jürgen; Arendsen, Alef; Risberg, Thomas; Sampaleanu, Colin (July 8, 2005). Professional Java Development with the Spring Framework (First ed.). Wrox Press. p. 672. ISBN 0-7645-7483-3.
  • Harrop, Rob; Machacek, Jan (January 31, 2005). Pro Spring (First ed.). Apress. p. 832. ISBN 1-59059-461-4.
  • Johnson, Rod; Jürgen, Höller (October 23, 2002). J2EE Development without EJB (First ed.). Wrox Press. p. 768. ISBN 0-7645-5831-5.
  • Johnson, Rod (October 2002). Expert One-on-one J2EE Design and Development (First ed.). Wrox Press. p. 750. ISBN 0-7645-4385-7.
  • Pollack, Mark; Gierke, Oliver; Risberg, Thomas; Brisbin, Jon; Hunger, Michael (October 31, 2012). Spring Data (First ed.). O'Reilly. p. 316. ISBN 978-1449323950.
  • Sarin, Ashish (June 27, 2016). Getting started with Spring Framework (Third ed.). Self-published. p. 626. ISBN 978-1534985087.
  • Long, Josh (August 27, 2013). Spring Framework LiveLessons (First ed.). Addison-Wesley Professional. pp. 4+ Hours. ISBN 978-0-13-346307-1.

External links[edit]

  • Official website