org.springframework

1. Introducción

Spring Framework proporciona un modelo de configuración y programación limpio y expresivo para aplicaciones empresariales modernas basadas en Java que pueden ejecutarse en cualquier plataforma de implementación.

Este artículo cubre la descripción general de alto nivel del marco Spring y principalmente, el paquete org.springframework que brinda soporte para inyección de dependencias, administración de transacciones, aplicaciones web, acceso a datos, mensajería, pruebas y más.

2. Características

Spring Framework ofrece una lista completa de características:

  • Aplicación web Spring MVC y marco de servicio web RESTful
  • Programación orientada a aspectos que incluye la gestión de transacciones declarativas de Spring
  • Inyección de dependencia
  • Inversión de control

y mucho más.

3. Dependencias de Maven

Si desea agregar Spring a su proyecto Maven, puede encontrar más información al respecto aquí.

4. Proyectos de primavera

El Marco incluye varios módulos y proyectos diferentes. Desde la configuración hasta la seguridad, desde las aplicaciones web hasta los macrodatos, sean cuales sean las necesidades de infraestructura de su aplicación, existe un proyecto Spring para ayudarlo a construirlo.

Empiece con algo pequeño y utilice justo lo que necesita: Spring tiene un diseño modular. Veamos algunos de esos proyectos aquí.

4.1. Spring Web MVC

El marco Web MVC proporciona una arquitectura Modelo-Vista-Controlador, diseñada alrededor de un DispatcherServlet que maneja todas las solicitudes y respuestas HTTP y hace que la aplicación se acople de manera flexible.

Lo mejor de esto es que le permite usar cualquier objeto como un comando u objeto de formulario; no es necesario implementar una interfaz o clase base específica del marco. Su enlace de datos es muy flexible: por ejemplo, trata las discrepancias de tipos como errores de validación que pueden ser evaluados por la aplicación, no como errores del sistema.

Aquí puedes encontrar la guía completa.

4.2. Plataforma Spring IO

IO Platform define un conjunto de dependencias (tanto dependencias de Spring Framework como bibliotecas de terceros) que podrían incluirse en un proyecto Java para permitirle elegir las dependencias necesarias sin preocuparse por la compatibilidad entre sus versiones (porque Spring IO lo garantiza).

La plataforma IO está certificada para funcionar con Java 7 y 8.

Eche un vistazo al proyecto GitHub.

4.3. Bota de primavera

Spring Boot facilita la creación de aplicaciones independientes basadas en Spring de grado de producción que puede "simplemente ejecutar". Hace que sea muy fácil crear una aplicación impulsada por Spring con un mínimo de trabajo.

Una aplicación creada con ella se puede configurar en gran medida automáticamente con algunos valores predeterminados sensibles y, además, se puede mejorar con métricas (cuántas solicitudes, cuánto tiempo tardaron las solicitudes, etc.).

Consta de varios módulos (opcionales):

  1. CLI: una interfaz de línea de comandos, basada en Groovy, para iniciar / detener aplicaciones creadas con Spring Boot.
  2. Boot Core: la base para otros módulos.
  3. Autoconfigurar: módulo para autoconfigurar una amplia gama de proyectos de Spring. Detectará la disponibilidad de ciertos marcos (Spring Batch, Spring Data JPA, Hibernate, JDBC).
  4. Actuador: este proyecto, cuando se agrega, habilitará ciertas funciones empresariales (seguridad, métricas, páginas de error predeterminado) para su aplicación.
  5. Iniciadores: diferentes proyectos de inicio rápido para incluir como dependencia en su archivo de compilación de Maven o Gradle. Tendrá las dependencias necesarias para ese tipo de aplicación. Actualmente, existen proyectos iniciales para un proyecto web (basado en tomcat y embarcadero), Spring Batch, Spring Data JPA, Spring Integration, Spring Security.
  6. Herramientas: la herramienta de compilación Maven y Gradle, así como el Spring Boot Loader personalizado (utilizado en el jar / war ejecutable único) se incluyen en este proyecto.

Podemos encontrar el artefacto Maven aquí y echar un vistazo al proyecto GitHub.

4.4. Datos de primavera

La misión de Spring Data es proporcionar un modelo de programación familiar y coherente basado en Spring para el acceso a los datos y, al mismo tiempo, conservar las características especiales del almacén de datos subyacente.

El objetivo principal de este proyecto es facilitar la creación de aplicaciones impulsadas por Spring que utilizan nuevas tecnologías de acceso a datos, como bases de datos no relacionales, marcos de reducción de mapas y servicios de datos basados ​​en la nube, así como proporcionar un mejor soporte para tecnologías de bases de datos relacionales. .

Este es un proyecto general que contiene muchos subproyectos que son específicos de una base de datos determinada (como JPA, MongoDB, Redis, Apache Solr, Gemfire, Apache Cassandra). Los proyectos se desarrollan trabajando junto con muchas de las empresas y desarrolladores que están detrás de estas emocionantes tecnologías.

4.5. Seguridad de primavera

Spring Security es un marco que se centra en proporcionar autenticación y autorización a las aplicaciones Java. Como todos los proyectos de Spring, el verdadero poder de Spring Security se encuentra en la facilidad con la que se puede extender para cumplir con los requisitos personalizados. Se publica bajo una licencia de Apache 2.0 para que pueda usarlo con confianza en sus proyectos.

También es fácil de aprender, implementar y administrar. Tiene un espacio de nombres de seguridad dedicado que proporciona directivas para las operaciones más comunes, lo que permite una seguridad completa de la aplicación en solo unas pocas líneas de XML y puede proteger sus aplicaciones contra ataques como fijación de sesiones, clickjacking, falsificación de solicitudes entre sitios, etc.

Spring Security también está integrado con muchas otras tecnologías de Spring, incluyendo Spring Web Flow, Spring Web Services y Pivotal tc Server.

Eche un vistazo a las preguntas frecuentes de la seguridad de Spring para tener una visión más profunda y la página de dependencia de Maven. Además, eche un vistazo a los tutoriales de seguridad de Spring para autenticación, registro y configuración de Spring Security con Maven .

4.6. Spring Social

Spring Social es una extensión del marco que permite que las aplicaciones se conecten con proveedores de software como servicio como Twitter, Facebook y otras API basadas en autenticación OAuth. Proporciona un marco de autenticación OAuth listo para usar para aplicaciones basadas en web.

caracteristicas:

  • Un marco de proveedor de servicios extensible que simplifica enormemente el proceso de conexión de cuentas de usuarios locales a cuentas de proveedores alojados.
  • Un controlador de conexión que maneja el flujo de autorización entre su aplicación web Java / Spring, un proveedor de servicios y sus usuarios.
  • Enlaces de Java a API de proveedores de servicios populares como Facebook, Twitter, LinkedIn, TripIt y GitHub.
  • Un controlador de inicio de sesión que permite a los usuarios autenticarse con su aplicación iniciando sesión a través de un proveedor de servicios.

Guías de introducción:

  • Acceso a datos de Facebook
  • Configuración de Spring Social Twitter
  • Inicio de sesión secundario de Facebook

Spring proporciona bastantes ejemplos de proyectos de GitHub para que pueda comenzar rápidamente y la referencia de Spring Social también es útil con una página de inicio rápido.

4.7. Concha de primavera

Spring Shell es un shell interactivo que se puede ampliar fácilmente con comandos utilizando un modelo de programación basado en Spring.

Los usuarios del proyecto de shell pueden construir fácilmente una aplicación de shell con todas las funciones ( también conocida como línea de comandos) dependiendo del jar de Spring Shell y agregando sus propios comandos (que vienen como métodos en los beans de primavera). La creación de una aplicación de línea de comandos puede ser útil, por ejemplo, para interactuar con la API REST de su proyecto o para trabajar con el contenido del archivo local.

El proyecto GitHub se puede encontrar aquí.

4.8. Spring Mobile

Spring Mobile es una extensión del marco y Spring Web MVC que tiene como objetivo simplificar el desarrollo de aplicaciones web móviles.

Spring Mobile es un marco que proporciona capacidades para detectar el tipo de dispositivo que realiza una solicitud a su sitio web de Spring y ofrecer vistas alternativas basadas en ese dispositivo. Como todos los proyectos de Spring, el verdadero poder de Spring Mobile se encuentra en la facilidad con la que se puede extender.

caracteristicas:

  • Una abstracción de resolución de dispositivos para la detección del lado del servidor de dispositivos móviles y tabletas
  • Gestión de preferencias del sitio que permite al usuario indicar si prefiere una experiencia "normal", "móvil" o "tableta"
  • Un conmutador de sitios capaz de cambiar al usuario al sitio más apropiado, ya sea móvil, tableta o normal, según su dispositivo y, opcionalmente, indica una preferencia de sitio.
  • Gestión de vistas con reconocimiento de dispositivos para organizar y gestionar diferentes vistas para dispositivos específicos.

Esta aplicación de muestra le ayudará a comenzar rápidamente.

También puede detectar un dispositivo, manejar una preferencia de sitio web o servir contenido web móvil con Spring MVC.

4.9. Lote de primavera

Spring Batch es un marco liviano y completo destinado a permitir el desarrollo de aplicaciones por lotes vitales para las operaciones diarias de los sistemas empresariales.

Las aplicaciones por lotes en este contexto se refieren a sistemas fuera de línea automatizados destinados al procesamiento de datos masivos. Spring Batch automatiza esta iteración básica por lotes, proporcionando la capacidad de procesar transacciones similares como un conjunto, generalmente en un entorno fuera de línea sin interacción del usuario.

Spring Batch funciona leyendo datos con un tamaño de fragmento configurable de una fuente de datos, los procesa y finalmente los escribe en un recurso.

La fuente de datos para el lector pueden ser archivos planos (archivo de texto, archivo XML, archivo CSV…), base de datos relacional (MySQL…), MongoDB.

De manera similar, un escritor puede escribir datos en archivos planos, bases de datos relacionales, MongoDB, mailer, etc.

Comience rápidamente creando un servicio por lotes y con otros recursos por lotes de Spring.

5. Paquetes básicos de primavera

Aquí, echemos un vistazo a los paquetes principales de Spring.

  • org.springframework.cache: este paquete admite subpaquetes y clases para la gestión de caché declarativa, configurando la caché de código abierto en la biblioteca Caffeine, clases de apoyo para la caché de código abierto EhCache 2.x.

  • org.springframework.context: este paquete se basa en el paquete beans para agregar soporte para las fuentes de mensajes y para el patrón de diseño de Observer, y la capacidad para que los objetos de la aplicación obtengan recursos mediante una API consistente.

  • org.springframework.core: proporciona clases básicas para el manejo de excepciones y la detección de versiones y otros ayudantes centrales que no son específicos de ninguna parte del marco.

  • org.springframework.expression: este paquete proporciona abstracciones básicas detrás del lenguaje de expresión Spring .

  • org.springframework.http: este paquete contiene una abstracción básica sobre HTTP del lado del cliente / servidor.

  • org.springframework.jdbc: las clases de este paquete facilitan el uso de JDBC y reducen la probabilidad de errores comunes.
  • org.springframework.jms: este paquete contiene clases de integración para JMS, lo que permite el acceso JMS al estilo Spring.

  • org.springframework.jndi: las clases de este paquete facilitan el uso de JNDI, facilitan el acceso a la configuración almacenada en JNDI y proporcionan superclases útiles para las clases de acceso de JNDI.

  • org.springframework.orm.hibernate5 - Paquete que proporciona la integración de Hibernate 5.x con los conceptos de Spring.

  • org.springframework.test.util: clases de utilidad generales para su uso en pruebas unitarias y de integración.

Esta lista es limitada y solo describe los paquetes principales para el marco Spring. Puede encontrar el listado completo aquí.

6. Conclusión

En este artículo de descripción general rápida, echamos un vistazo a varios proyectos que están presentes en el ecosistema de Spring e hicimos una rica colección de dependencias de Maven, los proyectos de GitHub y las características integrales que ofrece cada proyecto para hacer que nuestras aplicaciones web sean seguras, escalables y fáciles de vivir con.

También echamos un vistazo a los paquetes principales que nos brindan el poder de concentrarnos en un aspecto lógico de nuestras aplicaciones.