Todo ok.
Oscar RJava Spring La base técnica de las aplicaciones Jakarta EE
1 opinión
Este libro proporciona los elementos clave para orientarse en las diferentes tecnologías que se utilizan en losproyectos basados en Spring. Tiene en cuenta las diferentes configuraciones relacionadas con las versiones deSpring (en la versión 4.3 y 5.3 en el momento de la redacción del libro) y se basa en ejemplos de uso concretos.Permite que el lector adquiera rápidamente una gran autonomía en un proyecto empresarial que utilizaSpring, ya sea durante las fases iniciales de un nuevo proyecto o...
Consultar extractos del libro
Extracto de la edición impresa
- Nivel Medio a Experto
- Número de páginas 658 páginas
- Publicación mayo 2023
- Nivel Medio a Experto
- Publicación mayo 2023
proyectos basados en Spring. Tiene en cuenta las diferentes configuraciones relacionadas con las versiones de
Spring (en la versión 4.3 y 5.3 en el momento de la redacción del libro) y se basa en ejemplos de uso concretos.
Permite que el lector adquiera rápidamente una gran autonomía en un proyecto empresarial que utiliza
Spring, ya sea durante las fases iniciales de un nuevo proyecto o para mantener un proyecto existente: comprensión
del núcleo, acceso a los datos y control de la capa web. El conocimiento del desarrollo Java y, en particular,
el desarrollo de aplicaciones web, es un requisito previo esencial para aprovechar al máximo el libro.
En primer lugar, el autor presenta los elementos más sencillos y comunes de Spring (la configuración, los
contextos y las librerías de terceros) y posteriormente, explica algunos aspectos más complejos que normalmente
se encuentran en los proyectos (Recursos, Binders, Validadores, Conversores y pruebas). Se experimenta
con la programación orientada a aspectos y se detallan las aplicaciones web Spring MVC y los
Web Services, con las pruebas unitarias asociadas. El autor presenta las novedades Spring Boot, Kotlin con
Angular, las aplicaciones orientadas a mensajes y Spring Batch, una introducción a Reactor y WebFlux y una
descripción de la parte Spring de un proyecto generado a partir de JHipster para ilustrar una implementación
muy actual, así como una presentación sobre el uso de GraphQL con Spring.
A lo largo de los capítulos, el autor se basa en ejemplos funcionales para permitir la experimentación lo antes
posible por parte del lector. Para este propósito, los elementos están disponibles para su descarga en el sitio
web www.ediciones-eni.com/.
Características
- Encuadernación rústica - 17 x 21 cm
- ISBN: 978-2-409-04108-2
- EAN: 9782409041082
- Ref. ENI: EPT4JASP
Características
- HTML
- ISBN: 978-2-409-04109-9
- EAN: 9782409041099
- Ref. ENI: LNEPT4JASP
Descargas
Prólogo
- Prólogo
- Introducción
- Organización del libro
- Público objetivo
- Por qué Spring
- Requisitos previos para abordar Spring y Jakarta EE
- Objetivos del libro
Componentes del framework
- Introducción
- Aspectos históricos
- Utilidad de Spring en un proyecto
- Visión general y temas tratados en el libro
- 1. Los módulos Spring
- 2. Temas tratados
- 3. Versión de los componentes de Spring utilizadosen el libro
- 4. Versión de recursos externos
- 5. Gestión de dependencias de Maven
- 6. Usar una BOM (Bill Of Materials) Maven
- Complementos
- Puntos clave
Spring y Design Patterns
- Introducción
- El singleton en Java
- 1. Objetivo
- 2. Solución Spring
- 3. Ejemplo
- Inversión de control
- Facade
- Factory
- Decorador
- Proxy
- Modelo Vista Controlador (MVC)
- Templates
- Estrategia
- Puntos clave
Recordatorios sobre elementos externos a Spring
- Codificación equals y hashCode
- 1. Descripción del problema
- 2. Implementación
- Proyecto Lombok
- Sistemas de registro de actividad o log
- Bases de datos H2
- 1. Descripción del problema
- 2. Implementación
- a. Instalación
- b. Configurar el POM
- c. Conexión a la base de datos mediante JDBC
- d. Usar un listener de servlets para iniciar y detenerla base de datos
- 1. Descripción del problema
- 2. Implementación
- 3. Instalación de Maven en Windows
- 4. Utilizar un arquetipo Maven
- 5. Contenido del archivo pom.xml en los casos sencillosutilizados en este libro
El contenedor Spring
- Introducción
- Origen
- Los módulos fundamentales
- 1. Composición de un bean
- 2. El singleton y el prototipo
- 3. Los objetos fundamentales del paquete core
- a. El PropertyEditor
- 4. PropertyValues
- 5. BranWrapper
- 6. BeanFactory
- 7. La interfaz BeanDefinition
- 8. PropertyPlaceholderConfigure
- 9. Los objetos fundamentales del paquete context
- 10. Relación entre el bean, su BeanFactory osu contexto
- 1. Configuración mediante un archivo XML
- 2. Configuración con anotaciones
- 3. Configurar los beans de aplicación implícitamente
- 4. Configuración por lambdas
- 1. Asignación mediante el constructor en XML
- 2. Comparación de los métodos de instanciación
- 3. Otras anotaciones de configuración
- a. La anotación @Primary
- b. Las anotaciones @Profile y @Conditional
- 1. El Proyecto Maven
- 2. Archivo de configuración de Spring
- 3. Dependencia de Spring Core y sistema de registro
- 4. Dependencia de librerías de pruebas unitarias
- 5. Ejemplo que ilustra el uso de los logs
- 6. Archivo de configuración específicode las pruebas
- 1. Uso de ExpressionParser
- 2. EvaluationContext
- 3. Uso con @Value
- 1. Aspectos generales
- 2. Web services
- a. A través de un servlet
- b. Servidor integrado
- a. Funcionamiento
- b. Creación del EJB remoto
- c. Configuración de Maven en el lado del cliente
- d. Creación del cliente
- e. Integración adicional
- f. El design pattern Business Delegate
Configuración avanzada
- Introducción
- Archivos de recursos
- 1. Archivos de recursos estándares
- 2. Archivos de recursos cargados con el contexto Spring
- 3. Archivos de recursos cargados con un servicio ResourceLoaderAware
- a. El programa principal (main)
- b. El servicio ResourceLoaderAware
- 1. Built-in converters
- a. Para los tipos estándares
- b. Para tablas y listas
- c. Para las enumeraciones
- d. Para objetos en general
- a. Clase StringToUsuarioConverterFactory
- b. Clase UsuarioToStringConverterFactory
- c. Clase LasConversionesConFactories
- a. Clase LasConversionesFormateadoras
- a. Clase TarjetaDeCredito
- b. Clase TarjetaDeCreditoParser
- c. Clase TarjetaDeCreditoPrinter
- d. Clase TarjetaDeCreditoFormatter
- e. Clase LasConversionesFormateadoresEx2
- 1. Clase LosBeanWrappers
- 2. Clase UsuarioValidador
Programación orientada a aspectos con Spring
- Introducción
- ¿Por qué AOP?
- Los conceptos de AOP
- Límites de Spring AOP y uso de AspectJ
- El soporte @AspectJ en Spring
- 1. Habilitar el soporte
- 2. Habilitación de @AspectJ con configuraciónXML
- 3. Habilitar @AspectJ con configuraciónJava
- 4. Declaración de un aspecto
- 5. Declaración de un pointcut
- 6. Declaración de graft sencillos
- 7. Tipos genéricos
- 8. Determinación de nombres de argumentos
- 9. Orden de llamada de los grafts que interceptan elpunto de unión
- 10. Inyección
- 11. El mecanismo de los proxys
- 12. El lado oculto de los proxys en AOP
- Las API de bajo nivel para Spring AOP
- 1. La interfaz PointCut
- 2. La interfaz ClassFilter
- 3. La interfaz MethodMatcher
- Puntos clave
Pruebas y Spring
- Introducción
- Los mock objects
- 1. Mocks especializados por «entorno»
- 2. Soporte
- a. Utilidades generales
- b. Spring MVC
- 3. Pruebas de integración
- a. Visión general
- b. Almacenamiento en caché del contexto de prueba
- c. Pruebas back y front
- 4. Anotaciones
- a. @ContextConfiguration
- b. @WebAppConfiguration
- c. @ContextHierarchy
- d. @ActiveProfiles
- e. @TestPropertySource
- f. @DirtiesContext
- g. Interfaz TestExecutionListener
- h. @TransactionConfiguration
- i. @Transactional
- j. @Rollback
- k. @BeforeTransaction
- l. @AfterTransaction
- m. @Sql, @SqlConfig y @SqlGroup
- 5. Anotaciones estándares
- 1. Utilización con JUnit 4
- a. Spring JUnit Runner
- b. @IfProfileValue
- c. @ProfileValueSourceConfiguration
- d. @Timed
- e. @Repeat
- f. Meta-anotaciones de soporte para las pruebas
- a. Clases e interfaces del framework de pruebas
- b. Configurar TestExecutionListener con anotaciones
- c. TestExecutionListeners
- d. Mezcla XML y clases anotadas
- a. Configuración de contexto con inicializadoresde contexto
- b. Herencia en la configuración de los contextos
- c. Soporte de los perfiles de entorno
- d. Configuración de contexto con archivos depropiedades de prueba
- e. Declarar un archivo de propiedades para las pruebas
- f. Detección del archivo de propiedades predeterminado
- a. Herencia y sobrecarga de propiedades de prueba
- b. Cargar un WebApplicationContext
- c. Convenciones
- d. La semántica de los recursos explícitos
- e. Inyectar objetos mokeados
- f. Cacheado del contexto de prueba
- g. Jerarquías de contexto
- h. Inyección de dependencias en las pruebas
- a. El scope session durante una prueba de consulta
- b. Pruebas de beans de scope request
- c. Configuración de un bean de scope session
- a. Gestión de transacciones
- b. Transacciones administradas por la prueba
- c. Activación y desactivación de lastransacciones
- d. Comportamiento del commit y del rollback de una transacción
- e. Ejecutar código fuera de una transacción
- f. Configurar un administrador de transacciones
- g. Mostrar todas las anotaciones relacionadas con latransacción
- a. Ejecutar scripts SQL
- b. La semántica del path de los recursos
- c. Detección predeterminada de scripts
- d. Declarar varios @Sql
- e. Fases de ejecución de los scripts
- f. Script de configuración con SqlConfig
- g. Gestión de transacciones para @Sql
- a. Clases de soporte de JUnit
- b. Spring JUnit Runner
- a. Proyecto autónomo
- b. Pruebas del lado del servidor
- c. Definir expectativas
- d. Añadir filtros
- e. Pruebas REST del lado cliente
Parte back de la aplicación
- Descripción del problema
- Implementación
- 1. Configuración de una entidad de la capa dedominio
- 2. Acceso al objeto de dominio
- 3. Eliminación en cascada
- 4. Consultas tipadas
- 5. Caché de nivel 1 y 2
- 6. Bean Validation (JSR-303)
- 7. La API Criteria
- 8. Acceso a la base de datos
- 9. El archivo persistence.xml
- 10. Pruebas JPA
- Para ir más allá
- 1. Librería Java jcabi-aspects
- 2. Métricas AspectJ
- Usar MapStruct
- 1. Enfoque API-First
- Herramientas
- 1. Swagger
- 2. OpenAPITools
- 3. Otros
- Generadores de código
- Uso del plugin
- 1. Para el generador Swagger
- 2. Para el generador OpenAPITools
- Personalización
- 1. Swagger
- 2. OpenAPITools
- Diseño de una descripción de API
- Herramientas para el diseño de la API
- Spring Actuator
- Puntos clave
Spring en un contexto web JSP
- Spring MVC
- 1. Funcionamiento global
- a. Configuración XML sencilla
- b. Configuración por anotaciones
- 1. Funcionamiento global
- 2. Elementos complejos del controlador
- a. Funcionamiento global del controlador
- b. Ejemplo de clase simple
- c. Revisión sencilla
- d. Por el path
- e. Por un patrón en el path
- f. Por el path y un método
- g. Mapeado por path + método + presenciade argumentos de query
- h. Mapeado por path + método + presenciade un header
- i. Por la ausencia de un header
- j. Por consumo
- k. Por producción a través de Accept=application/json
- l. Por producción a través de Accept=application/xml
- m. Argumentos de query
- n. Grupos de argumentos de consulta
- o. Variable del path
- p. Cuerpo de consulta
- q. Encabezado y cuerpo de la consulta
- r. Argumentos en la consulta
- s. Argumentos de la respuesta
- t. Sesión
- u. Handler personalizado
- v. Leer los datos codificados en la URL
- w. Leer una estructura XML
- x. Escribir en una estructura XML a través deAccept=application/xml
- y. Leer una estructura JSON
- z. Escribir en una estructura JSON a travésde Accept=application/json
- aa. HTML generado por una plantilla JSP
- ab. Mapping a partir de un modelo
- ac. Usar variables en una plantilla de vista
- ad. Data binding con variables de URI
- ae. Tipos primitivos
- af. Fechas
- ag. Conversión de colecciones
- ah. Usar colecciones con formato
- ai. Trabajar con objetos personalizados
- aj. Usar un conversor personalizado
- ak. Validación
- al. @ExceptionHandler en un controlador
- am. @ExceptionHandler global
- an. Plantillas de String para las URI
- ao. UriComponentsBuilder
- 1. Utilización del RestTemplate
- 2. El bean de dominio con la anotación RESTpara los campos ausentes
- 1. Introducción a Spring Security
- 2. Spring Security en un entorno web
- a. Autenticación por Spring
- b. Autenticación por página de iniciode sesión personalizada
- c. Autenticación por base de datos
Integración JSF2
- Introducción
- Mojarra
- Arquitectura
- Ciclo de vida
- 1. Consulta
- 2. Restore View o Reconstruct Component Tree
- 3. Apply Request Value
- 4. Perform Validation
- 5. Synchronize Model o Update Model Values
- 6. Invoke Application Logic
- 7. Render Response
- 8. Respuesta
- 9. Archivo web.xml
- 10. Dependencias
- 11. Archivo faces-config.xml
- 12. Bean gestionado sin Spring
- 13. Ejemplo de vista JSF
- 14. Vista previa de un componente JSF
- Integración Spring
- 1. Arquitectura
- 2. Dependencias
- 3. Archivo web.xml
- 4. Archivo faces-config.xml
- 5. Capas inferiores (back)
- Puntos clave
Aplicación Spring Angular
- Introducción
- La parte backend
- 1. Generación de un backend
- La parte frontend
- 1. Angular CLI
- 2. Creación del proyecto inicial
- 3. Inicio de la aplicación
- 4. Crear un servicio Cuenta
- Puntos clave
Spring-HATEOAS
- Introducción
- 1. Ejemplo de enlaces hipermedia codificados manualmente
- 2. Ir más allá con hipermedia
- 3. Autoconfiguración por anotaciones
- 4. Proveedores de relaciones
- 5. Proveedor de URI compacto
- 6. Soporte del lado del cliente
- 7. Descubrimiento de enlaces del lado del cliente
- 8. Uso del @RepositoryRestResource
- Puntos clave
Documentación Spring REST Docs
- Introducción
- 1. Dependencia de la librería de pruebas
- 2. Dependencia de los plugins Maven
- 3. Los extractos (snippets)
- Ejemplo JUnit 5 (Jupiter)
- Consulta y respuesta
- Respuesta con JSON anidado
- 1. Parámetros de consulta
- 2. Los parámetros incluidos en el path
- 3. Las Request parts
- 4. Las Request parts payloads
- 5. Los campos
- 6. Enlaces hipermedia en la respuesta
- 7. Los encabezados
- Personalización de la documentación
- Acoplamiento Swagger 2
- 1. Utilizar Springfox
- 2. Fuera de Spring Boot
- Uso con Spring Data Rest
- Resumen de la documentación generada
- Puntos clave
Spring Boot
- Introducción
- Configuración de los ejemplos
- 1. Configuración de Maven para la versión1.5 de Spring Boot
- 2. Configuración Maven para la versión2 de Spring Boot
- 3. Uso del hot swapping
- 4. Packaging y lanzamiento de la aplicación
- 5. Aplicación Spring MVC mínima
- Configuración automática Spring Boot
- Los starters
- 1. Starters comunes
- 2. Starters orientados a mensajes
- 3. Bases de datos
- 4. Servicios web
- 5. Motores de renderizado
- 6. Starters menos comunes
- Spring MVC
- Personalización de banners
- Eventos de aplicación
- Recuperación de argumentos de la línea de comandos
- 1. CommandLineRunner
- 2. ApplicationRunner
- 3. La configuración yaml y perfiles
- La anotación EnableConfigurationProperties
- Configurar los logs
- 1. Los logs de color
- 2. Elección del tipo de registro
- Configuración automática para Spring MVC
- Gestión de sesiones
- Guía de migración de la versión 1.5 a la versión 2.x
- 1. Archivos de configuración
- 2. Diferentes comportamientos
- 3. Arranque
- 4. Utilizar ApplicationRunner o CommandLineRunner
- 5. Configuración externalizada
- 6. Desarrollo de aplicaciones web
- 7. Seguridad
- Descripción avanzada de Spring Boot
- Cargar el BootstrapContext
- Configuración de los listeners
- 1. El starting: ApplicationStartingEvent
- 2. El entorno: ApplicationEnvironmentPreparedEvent
- 3. El EnvironmentPostProcessorApplicationListener
- Configuración de logs
- Creación de ApplicationContext
- Preparación y refresco del contexto
- EnableAutoConfiguration
- Lanzamiento de runners
- Puntos clave
Spring y NoSQL
- Introducción
- Modelos de datos
- 1. Modelo clave-valor
- 2. Modelo Documentos
- 3. Modelo Orientado a columnas
- 4. Bases de datos orientadas a grafos
- Aspectos principales de la base de datos
- Por qué y cuándo usar una base de datos NoSQL
- Problemas con el uso de bases de datos NoSQL
- Limitaciones de la base de datos NoSQL
- Spring y NoSQL
- Caché de datos
- 1. Caché sencilla
- Ocultar datos con GemFire
- GemFire como base de datos NoSQL
- Redis independiente
- 1. Uso de Redis para la caché de datos
- 2. Utilizar Redis para gestionar mensajes
- MongoDB
- 1. MongoDB con Spring Boot
- 2. MongoDB con una API REST
- Puntos clave
Spring Batch
- Introducción
- Arquitectura de un batch
- Ejemplo de Spring Batch versión 4
- Cargador H2 desde un CSV
- Dependencias Spring Batch 3 y 4
- Otras novedades de la versión 4
- Evoluciones de los batchs
- Puntos clave
Los Middlewares de mensajes (MOM)
- Introducción
- Implementaciones open source
- Implementaciones propietarias
- Casos de uso
- JMS y ActiveMQ
- RabbitMQ
- 1. Spring AMQP y RabbitMQ
- 2. Ejemplo de RabbitMQ
- Puntos clave
Spring y Kotlin
- Introducción
- Características principales del lenguaje Kotlin
- 1. Los métodos y las funciones
- 2. La inmutabilidad de los objetos
- 3. Los tipos
- 4. Gestión de valores nulos
- 5. Llamadas encadenadas seguras
- 6. Las lambdas
- Controlador Spring MVC, Spring Boot en Kotlin
- 1. Función principal
- 2. Prueba asociada a la función principal
- Los plugins
- Puntos clave
Introducción a Spring Reactor y Spring Webflux
- Introducción
- Spring Reactor
- 1. Presentación
- 2. Uso de Reactor Core
- a. Los threads
- b. Las FutureTask
- c. CompletableFuture
- d. Flux y Mono
- 3. Las pruebas
- a. Comprobaciones con StepVerifier
- b. Emisiones manuales con TestPublisher
- 1. Definición del término responsivo
- 2. Las capas responsivas
- a. La capa del controlador
- b. La capa de los servicios
- c. La capa repository
- d. Repository responsivo R2DBC
- 1. Pruebas unitarias
- a. Pruebas unitarias con aplicaciones responsivas
- b. Uso de MockWebServer
Spring y JHipster
- Introducción
- Aspectos generales
- 1. JHipster web
- 2. Personalización de la herramienta JHispter
- 3. Niveles de personalización
- Crear un blueprint
- 1. Blueprint para usar lombok en el dominio
- 2. Ejecución del blueprint local
- JHipster como herramienta multitecnologías
- 1. Lado del cliente
- 2. Lado del servidor
- 3. Lado de la implementación
- 4. Lado de Spring
- Estructura del proyecto
- 1. La parte front
- 2. Las líneas principales de la parte back
- a. Spring Boot
- b. La clase de servidor HTTP/servlet
- 1. Configuración DatabaseConfiguration
- 2. Configuración DateTimeFormatConfiguration
- 3. Configuración LocaleConfiguration
- 4. Configuración ReactorConfiguration
- 5. Configuración SecurityConfiguration
- 6. Configuración WebConfigurer
- 7. Las pruebas
Utilización de GraphQL
- Introducción
- El esquema
- 1. La sección Query
- 2. La sección Mutation
- Integración de GraphQL en Spring
- La extensión Spring Data Querydsl
- Controladores GraphQL
- Autoconfiguración
- 1. Versión HTTP
- 2. El Service GraphQlService
- 3. El RuntimeWiringConfigurer
- 4. Gestión de errores
- Conclusión
- Puntos clave
Novedades de Spring 6
- El futuro de Spring
- Soporte de módulos Java
- Spring Native
- Proyecto Leyden
- Spring Observability
- Obsolescencia programada
Hervé LE MORVAN
Hervé Le Morvan ejerce en la actualidad como experto técnico para grandes empresas del sector bancario, seguros y de las telecomunicaciones. A lo largo de sus más de veinte años de experiencia, ha trabajado principalmente como referente técnico y formador en equipos de Investigación y Desarrollo, así como en equipos de arquitectos y como soporte en el desarrollo de aplicaciones en misiones de migración o modernización de Sistemas de Información. En este contexto, ha participado en numerosos proyectos de migración utilizando la plataforma Spring y conoce perfec-tamente las expectativas de las empresas en este ámbito. En este libro, comparte gustosamente toda esta experiencia.
Más información
