¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Java Spring - Construya aplicaciones reactivas con una arquitectura de microservicios en un entorno Jakarta EE

Java Spring Construya aplicaciones reactivas con una arquitectura de microservicios en un entorno Jakarta EE

Información adicional

  • 5% de descuento en todos los libros
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis por un año

Características

  • Encuadernación rústica - 17 x 21 cm
  • ISBN: 978-2-409-04730-5
  • EAN: 9782409047305
  • Ref. ENI: EPT2REAJASP

Información adicional

  • 5% de descuento en todos los libros
  • Versión online digital, no descargable
  • Consultable en línea durante 10 años inmediatamente después de la validación del pago.

Características

  • HTML
  • ISBN: 978-2-409-04731-2
  • EAN: 9782409047312
  • Ref. ENI: LNEPT2REAJASP
Este libro, que trata sobre el desarrollo de aplicaciones reactivas y de streaming, se dirige a cualquier persona (desarrollador, responsable técnico, arquitecto, etc.) que tenga que trabajar en un proyecto basado en Java Spring (concretamente la versión 6.0). Su objetivo es proporcionar los conocimientos necesarios para com­prender los problemas asociados a las nuevas arquitecturas reactivas con programación asíncrona. Para sacar el máximo partido de este libro, es necesario tener un buen...
Consultar extractos del libro Extracto del libro
  • Nivel Medio a Experto
  • Número de páginas 560 páginas
  • Publicación diciembre 2024
  • Nivel Medio a Experto
  • Publicación diciembre 2024
Este libro, que trata sobre el desarrollo de aplicaciones reactivas y de streaming, se dirige a cualquier persona (desarrollador, responsable técnico, arquitecto, etc.) que tenga que trabajar en un proyecto basado en Java Spring (concretamente la versión 6.0). Su objetivo es proporcionar los conocimientos necesarios para com­prender los problemas asociados a las nuevas arquitecturas reactivas con programación asíncrona. Para sacar el máximo partido de este libro, es necesario tener un buen conocimiento de los mecanismos de Jakarta EE y de la programación Java en general. Asimismo, puede ser útil conocer un mínimo el framework Spring.

El autor comienza presentando los fundamentos de la programación reactiva. A continuación, presenta las bibliotecas reactor-core, la stack web reactiva de Spring con WebFlux y WebSockets y RSocket. Después, se aborda la gestión de bases de datos reactivas y se exploran los reactores especializados para Netty, Rab­bitMQ y Kafka. También se detallan las extensiones para Kotlin.

En el resto del libro, se explican la programación de microservicios y aplicaciones en el cloud, así como elementos como DDD, event sourcing, arquitecturas Hexagonales y CQRS.

Por último, el autor presenta un estudio de aplicaciones generadas por JHipster. A lo largo del libro, el autor se basa en ejemplos de uso concreto.

Los elementos necesarios para la realiza-ción de estos ejemplos se pueden descargar a partir del sitio web www.ediciones-eni.com. 


Descargas

Prólogo
  1. Preámbulo
  2. Contexto de aplicación
  3. Visión general de Spring
  4. Principios de las aplicaciones reactivas
  5. Objetivos del libro
  6. Organización del libro
  7. Destinatarios
  8. Requisitos previos para la programación reactiva con Spring
  9. Recursos adicionales
  10. Agradecimientos
La programación funcional
  1. Introducción
  2. Las expresiones lambda
  3. Las interfaces funcionales
  4. Los métodos de referencia
  5. Las operaciones sobres los flujos
  6. La inmutabilidad
  7. Las órdenes superiores de las funciones
  8. La reducción del bucle
  9. Conclusión
Programación reactiva
  1. Introducción
  2. Conceptos clave de la programación reactiva
  3. Reactive Streams
    1. 1. Orígenes
    2. 2. Initiative Reactive Streams
    3. 3. Adopción
  4. Aplicaciones reactivas sin Reactor
    1. 1. Akka
    2. 2. Vert.x
  5. Funcionamiento de Reactor
    1. 1. En interno
    2. 2. API Rx-ified
Reactor Core
  1. Introducción
  2. Reactor Core
  3. Método Subscribe()
    1. 1. Sobrecarga
    2. 2. Gestión de errores
    3. 3. Valor de retorno
  4. Utilización de BaseSubscriber
  5. Generar una secuencia manualmente
    1. 1. Modelo sincrónico
    2. 2. Modelo asíncrono
    3. 3. Modelo híbrido push/pull
  6. Método handle()
  7. Scheduler
  8. Tratar correctamente los casos de errores
    1. 1. Operador onErrorResume
    2. 2. Operador onErrorReturn
    3. 3. Operador onErrorMap
    4. 4. Operador doOnError
    5. 5. Operador onErrorStop
    6. 6. Operador onErrorContinue
  9. Captura y reenvío de excepciones
    1. 1. Gestión de excepciones
    2. 2. doFinally
    3. 3. retry
  10. Sinks
  11. Transformaciones personalizadas en el flujo
    1. 1. Creación de flujos
      1. a. Operadores just() y defer()
      2. b. Operadores share() y replay(...)
      3. c. ConnectableFlux
    2. 2. Agrupación de flujos
      1. a. ParallelFlux
      2. b. Flux<><t, k="">></t,>
      3. c. Modificación de los planificadores por defecto
      4. d. Gestor global de errores
  12. Global hooks
    1. 1. Hooks de supresión
    2. 2. Hook onOperatorError
    3. 3. Hooks de ensamblaje
    4. 4. Hooks preconfigurados
  13. API Context
    1. 1. Estructura del contexto
    2. 2. Operador contextWrite
  14. Pruebas
    1. 1. Pruebas con StepVerifier
      1. a. Interfaz Step<t></t>
      2. b. StepVerifierOptions
      3. c. Cobertura de las pruebas
    2. 2. Programas de pruebas basados en el reloj del sistema
      1. a. Método withVirtualTime
      2. b. VirtualTimeScheduler
      3. c. expectNoEvent(Duration)
    3. 3. Utilización de verifyThenAssertThat()
    4. 4. Prueba con el contexto asociado a una secuencia reactiva
    5. 5. TestPublisher
    6. 6. createNonCompliant()
    7. 7. PublisherProbe
  15. Reactor de depuración
    1. 1. Hooks.onOperatorDebug()
    2. 2. Método checkpoint()
  16. Conclusión
Stack web reactiva Spring
  1. Introducción a la stack web reactiva
  2. Núcleo reactivo
  3. HttpHandler
    1. 1. General
    2. 2. Para Reactor Netty
  4. API de WebHandler
  5. WebHttpHandlerBuilder
  6. ServerWebExchange
  7. Spring WebFlux
    1. 1. Aspectos clave para empezar
      1. a. Seguridad mínima
      2. b. Enrutamiento y la manipulación funcional
      3. c. Componentes reactivos basados en anotaciones
    2. 2. Utilización de componentes
      1. a. Utilización de ServerWebExchange
      2. b. WebFilter
    3. 3. CORS
    4. 4. WebExceptionHandler
    5. 5. Utilización de ProblemDetail
    6. 6. Codificadores y decodificadores
    7. 7. FormHttpMessageReader y FormHttpMessageWriter
    8. 8. MultipartHttpMessageReader y MultipartHttpMessageWriter
    9. 9. maxInMemorySize
    10. 10. Hacer Streaming
    11. 11. Registro
    12. 12. DispatcherHandler
    13. 13. WebFluxConfigure
      1. a. Configuración global
      2. b. Configuración de interceptores de solicitudes
      3. c. Configuración de los gestores de recursos
      4. d. Configuración de los parámetrosde seguridad
    14. 14. HandlerAdapter y HandlerResult
    15. 15. DispatchExceptionHandler
    16. 16. Resolución de vistas
    17. 17. Redirecciones
    18. 18. Negociación de contenido
    19. 19. Aspect-Oriented Programming
    20. 20. Validación de beans
    21. 21. Utilización de Springdoc
    22. 22. Gestión de la internacionalización
      1. a. Configuración
      2. b. Mensajes de error
    23. 23. Configuración de WebFlux
  8. WebSocket(s) reactivo(s)
  9. WebClient
    1. 1. MaxInMemorySize
    2. 2. Filtros
    3. 3. Utilizar el contexto
    4. 4. Utilización sincrónica
    5. 5. WebClientResponseException
    6. 6. Pruebas
    7. 7. Pruebas con WebTestClient
  10. RSocket
    1. 1. RSocketRequester
    2. 2. Ejemplo práctico
      1. a. Cliente
      2. b. Servidor
  11. Conclusión
Bases de datos reactivas
  1. Acceso a datos en modo reactivo
  2. Bases NoSQL utilizables
  3. Ejemplo con MongoDB
  4. R2DBC
Los diferentes reactores extendidos
  1. Introducción
  2. Reactor Netty
  3. Programación Netty con Spring
  4. Protocolo TCP
    1. 1. Servidor simple
      1. a. Anotaciones y variables de instancia
      2. b. Método Start()
      3. c. Método stop()
    2. 2. Cliente único
      1. a. Anotaciones y declaración de clases
      2. b. Configuración mediante propiedades
      3. c. Lógica de cliente TCP
      4. d. Consumir datos
      5. e. Configuraciones a nivel TCP
      6. f. Configurar las opciones de canal
      7. g. Registro de conexiones
      8. h. Grupo de bucles de eventos
      9. i. Seguridad de las comunicaciones a travésde SSL y TLS
      10. j. Indicación del nombre del servidor
      11. k. Métrica
      12. l. Sockets de dominio Unix
    3. 3. Datos del cliente
      1. a. Registro de conexiones
      2. b. "Entrenadores Wire Logger"
      3. c. Grupo de bucles de eventos
      4. d. Grupo de conexión
      5. e. Métrica
      6. f. Indicación del nombre del servidor
      7. g. Soporte para proxies
      8. h. Sockets de dominio Unix
      9. i. Resolución de nombres de host
  5. Servidor HTTP
  6. Servidor UDP
  7. Conclusión sobre el Reactor Netty
  8. Reactor Rabbit MQ
    1. 1. Uso de la parte de servidor de RabbitMQ
      1. a. Configuración del servidor
      2. b. Gestión a través de la interfazweb
      3. c. Gestión de la línea de comandos
    2. 2. Programación con RabbitMQ
      1. a. Programación AMQP sencilla
      2. b. Primera integración con Spring AMQP
    3. 3. Desarrollo con Reactor-rabbit-mq
      1. a. Contrapresión
      2. b. Recepción de mensajes
      3. c. El modelo de threading
    4. 4. Gestión a través de la RPC
    5. 5. Solicitudes/respuestas receptivas
      1. a. Cliente RPC
      2. b. Servidor RPC
    6. 6. Reactive RabbitMQ Receiver
    7. 7. Utilización avanzados
      1. a. Personalización de la creación deconexiones
      2. b. Creación de una conexión con unMono personalizado
    8. 8. Conclusión sobre Reactor RabbitMQ
  9. Reactor Kafka
    1. 1. Introducción
    2. 2. API reactiva para Kafka
    3. 3. Motivaciones
    4. 4. Dependencias
    5. 5. Utilización del producto Kafka
      1. a. Configuración de docker-compose.yml
      2. b. Inicio del servidor Kafka
      3. c. Conexión mediante Kafka Tool
      4. d. Supervisión de registros
    6. 6. Ejemplo de uso de Reactor Kafka
    7. 7. API Reactor Kafka
      1. a. Publicar mensajes
      2. b. Publicar una secuencia de mensajes
      3. c. Gestión de errores
      4. d. Modelo de threading
      5. e. Acceso al KafkaProducer subyacente
      6. f. Recepción de mensajes
      7. g. Envío de registros a Kafka
      8. h. Entrega como máximo una vez
      9. i. Salida con varios flujos
      10. j. Procesamiento simultáneo con clasificaciónbasada en particiones
      11. k. Exactamente una sola entrega
    8. 8. Conclusión para la utilizacion de ReactorKafka
Soporte para Kotlin
  1. Uso de Kotlin
    1. 1. Beneficios
      1. a. Código conciso
      2. b. Valores null
      3. c. Extensiones de función
      4. d. Smart cast
      5. e. Coroutines
      6. f. Interoperabilidad con Java
      7. g. Legibilidad
    2. 2. Exclusividades de Kotlin
      1. a. Funciones inlíne
      2. b. Inferencia de tipos
      3. c. Interpolación de cadenas
      4. d. Excepciones checked
      5. e. Expresión when
  2. Uso de Kotlin con Reactor
    1. 1. Null safety  extension
    2. 2. Tipos reificados
    3. 3. Ejemplo
  3. CRUD para un usuario
    1. 1. CRUD simple
    2. 2. CRUD con coroutines
  4. Conclusión
Microservicios y aplicaciones en el cloud
  1. Problemáticas
    1. 1. Doce factores DevOps
    2. 2. Problemáticas en el cloud
    3. 3. Distribución de estados entre varios nodos
  2. Conclusión
Utilizaciones avanzados
  1. Introducción
  2. Diseño basado en el dominio
    1. 1. Modelización de eventos y event sourcing
    2. 2. Event store
    3. 3. Event storming
  3. Arquitectura hexagonal y clean architecture
  4. CQRS
  5. Sagas
  6. Evolución de las arquitecturas
  7. Elementos de implementación
    1. 1. Spring Cloud Stream
    2. 2. Spring Cloud Function
    3. 3. Spring Cloud Gateway
    4. 4. Spring Integration
    5. 5. Spring State Machine
  8. Conclusión
Ejemplo eampleando el generador JHipster
  1. Introducción
  2. Instalación mediante Docker
  3. Generación de código
  4. Estudio del código generado
    1. 1. Configuración
      1. a. Registros
      2. b. Configurar fechas y horas
      3. c. Seguridad
      4. d. Configuración de WebFluxConfigurer
    2. 2. Capas
      1. a. Dominio
      2. b. Repository
      3. c. Servicio
      4. d. Controladores
  5. Conclusión
Conclusión
  1. Conclusión
Autor : Hervé LE MORVAN

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

Descubrir todos sus libros

  • Java Spring La base técnica de las aplicaciones Jakarta EE

Novedades

Ver más