El perfil de desarrollador Java es uno de los actualmente más demandados, siendo Spring, junto con Hibernate, los líderes indiscutibles entre las tecnologías para el desarrollo de...
El perfil de desarrollador Java es uno de los actualmente más demandados, siendo Spring, junto con Hibernate, los líderes indiscutibles entre las tecnologías para el desarrollo de aplicaciones empresariales.
Esta obra recoge los conceptos esenciales de Spring, mostrando las bondades que ofrece Spring Boot, sin perder de vista las configuraciones tradicionales que todavía se pueden encontrar en muchos proyectos existentes. A continuación se adentra en la programación orientada a aspectos y en la gestión de datos, tanto relacionales como NoSQL, que resultarán contenidos clave para el desarrollo de aplicaciones Web con Spring MVC. Por último, aborda funcionalidades extra para acceder a servidores de todo tipo, crear tareas batch, y mostrar las nuevas tendencias de desarrollo la programación reactiva, el testing de aplicaciones, así como las herramientas de integración continua e implementación. Además, cuenta con ejemplos prácticos y reales abarcando las distintas áreas de Spring, extrapolables a cualquier proyecto.
Dirigida tanto a aquellas personas que no tengan grandes conocimientos previos y quieran iniciarse en el desarrollo de aplicaciones empresariales con el framework, como a desarrolladores más experimentados que desean una actualización a la versión 5 de Spring.
Índice
1ª Parte. Spring Básico
Capítulo 1. Introducción a Spring
Introducción
Origen de Spring
Inyección de dependencias
Escenario de ejemplo
Solución mejorada
Un ejemplo más real
Capítulo 2. Preparando el entorno
Instalación de JDK
Creación de Proyectos con Spring Initializer
Entornos de desarrollo
Eclipse Che
Creando proyectos con Spring STS
Creando un proyecto tipo Spring
Capítulo 3. Spring Básico
Un ejemplo básico
Utilizando Spring Boot y anotaciones
Inyección por constructor
Inyección por anotaciones
Autowiring
Cualificadores
Cualificadores personalizados
Primary Bean
Capítulo 4. Beans, colecciones y properties
Tratamiento de colecciones
Definición de beans anidados
Inicialización con factories
Ámbito de beans
Ciclo de vida de los beans
Configuración por código
Combinando XML y beans de configuración
Escaneo de componentes
Variables de entorno
Logging con log4j2
Perfiles
Propiedades
Properties en formato YML
Personalizando el banner de inicio
Capítulo 5. SpEL
SpEL
Aplicando SpEL
2ª Parte. Programación orientada a aspectos
Capítulo 6. Programación orientada a aspectos
El código transversal
Un ejemplo
La programación orientada a aspectos
Aplicando aspectos en Spring
Formato de anotaciones
Un ejemplo más completo
Configuración en XML
Pointcuts por anotaciones
3ª Parte. Acceso a datos
Capítulo 7. Acceso a datos
Acceso a datos
El patrón DAO
Entity Manager
HQL
JPA
Aplicando perfiles
Inicialización con Java
Gestión de H2
Orígenes de datos múltiples
Capítulo 8. Mapeos objeto/relacional
Entidades incrustadas
Mapeo de enumeraciones
Relaciones uno a uno
Relaciones uno a uno bidireccionales
Relaciones uno a uno mismo
Relaciones uno a varios
Relaciones uno a varios bidireccionales
Relaciones varios a varios
Relaciones varios a varios bidireccionales
Mapeo de relaciones de herencia
Otras estrategias de herencia
Herencia con una tabla por subclase
Capítulo 9. Técnicas avanzadas
Consultas avanzadas JPA
Lombok
DTO con MapStruct
Capítulo 10. MongoDB
NoSQL y MongoDB
Acceso a MongoDB
MongoDB embebido
4ª Parte. Spring MVC
Capítulo 11. Spring MVC
El patrón MVC
Spring MVC
Un primer Proyecto Spring MVC
Mapeo de peticiones GET
Mapeo de peticiones POST
Formularios complejos
Validación de datos
Validaciones personalizadas
Internacionalización
Atributos flash
Capítulo 12. Spring MVC y bases de datos
Acceso a datos
Operaciones CRUD en Spring MVC
Subida de ficheros
Uso de Command Objects
Tratamiento de excepciones
Convenciones Spring MVC
Webjars para el frontend
Apache Tiles
Vistas: Thymeleaf, Spring Taglib, Mustache
Webflow
Capítulo 13. Seguridad en Spring MVC
Seguridad básica
Seguridad en Spring MVC
Control de acceso con base de datos
Cifrado de contraseñas
Seguridad en las vistas
Capítulo 14. REST
Recursos REST
Tu primer proyecto REST
CRUD en REST
Aplicando MapStruct
Swagger
5ª Parte. Servicios
Capítulo 15. Correo electrónico
Envío de correo
Acceso a IMAP
Acceso a correo por POP
Capítulo 16. Redis
Redis
Caché de datos
Colas de mensajes con Redis
Colas de mensajes con RabbitMQ
Capítulo 17. Servicios Web
WebServices
Clientes REST
WebSockets
Capítulo 18. Spring Batch
Spring Batch
Spring Batch para procesar datos
6ª Parte. Programación reactiva
Capítulo 19. Programación reactiva
Reactive Manifesto
Programación reactiva
Reactive Streams API
Streams Java
Programación reactiva en Spring
Generación y consumo de streams
Aplicación web reactiva
7ª Parte. Testing
Capítulo 20. Testing en aplicaciones Spring
Testing
TDD
Testing de instanciación
Testing de acceso a datos
Testing de controladores web.
Testing de controladores REST
Testing con mocks en MVC
Mocks de modelos y servicios
Test de integración en MVC
Integración continua
Test de cobertura
8ª Parte. Spring Boot y otras herramientas
Capítulo 21. Spring Boot y despliegue
Spring Boot
Maven
Gradle
Dependencias Spring Boot
El Shell de Spring Boot
Microservicios
Docker