Visão Geral
Este Curso Reactive Spring se concentra em fornecer uma compreensão dos princípios e tecnologias fundamentais usados na programação reativa. Esse entendimento é fundamental para poder diagnosticar, solucionar problemas, ajustar e executar outras atividades do ciclo de vida. Voltado para desenvolvedores Java experientes com experiência básica em Spring, este curso explora APIs e técnicas de programação simultânea, assíncrona e reativa usando Spring. Ao longo do curso prático, você explorará os fundamentos da programação reativa, Reactive Streams e as APIs do Project Reactor, bem como como essas APIs são integradas ao Spring. Spring 5 inclui Spring WebFlux, fornecendo um modelo de programação reativo para aplicações web, bem como suporte para APIs REST reativas.
Você também aprenderá sobre o Spring WebSocket, que auxilia na criação de aplicativos da Web para fornecer comunicação bidirecional full-duplex entre cliente e servidor. O curso também aborda Spring Data, que implementa operações de banco de dados com base em APIs de programação reativa. Embora a iniciativa Spring R2DBC vise trazer programação reativa para bancos de dados relacionais, vários bancos de dados NoSQL já oferecem essa possibilidade. Junto com uma introdução ao NoSQL e ao MongoDB, este curso também explora as APIs disponíveis para comunicação com esse banco de dados NoSQL usando APIs de bloqueio e reativas.
Objetivo
Após concluir este Curso Reactive Spring, você será capaz de:
- Entenda a especificação ReactiveX
- Entenda os fundamentos da Programação Reativa
- Discuta as vantagens e limitações dos Observáveis
- Escreva um aplicativo cliente capaz de lidar com eventos reativos
- Aplique operadores a fluxos de eventos para filtrar, modificar e combinar os objetos emitidos pelos editores de eventos
- Selecione o tipo apropriado de fonte de evento
- Use observáveis frios e quentes
- Lidar com problemas de contrapressão na programação reativa
- Desenvolva uma aplicação web reativa usando Spring WebFlux
- Definir fluxos de aplicativos de um aplicativo WebFlux
- Use a API WebClient para trabalhar com APIs síncronas e de streaming
- Desenvolva testes de unidade e integração para testar endpoints WebFlux
- Criando um endpoint REST reativo
- Familiarize-se com os conceitos básicos de WebSockets
- Crie um endpoint WebSocket usando Spring
- Crie um cliente WebSocket
- Entenda os fundamentos do NoSQL
- Familiarize-se com os fundamentos do MongoDB
- Entenda como os dados no MongoDB podem ser recuperados usando uma API reativa
- Definir repositórios Spring Data MongoDB
- Consulte o MongoDB usando Spring Data
- Defina um repositório reativo usando MongoDB
- Explore a API experimental Spring Data R2DBC para realizar operações CRUD reativas em um banco de dados relacional
Publico Alvo
- Desenvolvedores Java com habilidade intermediária e experiência em Spring.
Pre-Requisitos
- Experiência com Spring Core, Spring Boot e Spring Batch
- Experiência com Spring Boot 2.x e Spring Data
Materiais
Inglês/Português/Lab Pratico
Conteúdo Programatico
Introduction to Reactive Programming
- Reactive Manifesto,
- Introduce ReactiveX
- ReactiveX implementations
- The Observer and Iterator pattern and functional programming
- Discuss hot and cold observables
Reactive Streams API
- Introduce the Reactive Streams specification
- Publisher and Subscribers
- java.util.concurrent.Flow
- Transformation of Messages (Processor)
- Controlling messages
Introduction to Project Reactor
- Introduce the Reactor Building blocks
- Flux and Mono
- Creating observables
- Subscribing to a stream
Reactive Operators
- Introduce Operators
- Show the use of RxMarbles (marble diagrams)
- Explain some commonly used operators
- Callback operators
Schedulers (Multithreading)
- Thread usage of subscriber and consumer
- Using the subscribeOn method
- Introduce the Scheduler interface
- Using the observeOn method
Backpressure
- Strategies for dealing with Backpressure
- “reactive pull” backpressure
- ConnectableFlux
- Throtteling
Exception Handling
- Handling errors in onError
- Exception handling strategies
- Using onErrorReturn or onErrorNext operators
- Using the retry operators
- The Global Error Handler
Introduction to Spring WebFlux
- Annotated Controllers
- Functional Endpoints
- WebFlux configuration
- Defining reactive web endpoints
View Technologies
- View technologies
- Using Thymeleaf to create the view
- View Configuration
Defining flows
- Defining the application flow
- Actions
- Defining decision
- Navigating flows
- RouterFunction
Introduction to WebClient
- Working with asynchronous and streaming APIs
- Making requests
- Handling the response
WebTestClient
- Testing WebFlux server endpoints
- Testing controllers or functions
- Define integration tests
Reactive REST services
- Creating a reactive REST endpoint
- Creating a reactive client for Reactive streams
Introduction to Spring Reactive WebSockets
- Be familiar with the basics of WebSockets
- Understand the HTTP handshake and upgrade
- Name some of the advantages of WebSockets
Defining the WebSocket
- WebSocket Message Handling
- WebSocketSession
- Implemeting the WebSockethandler
- Creating a Browser WebSocket Client
BigData
- Introduce Big Data
- Explain the need for enhanced data storage
Introduction to NoSQL
- Introduce NoSQL
- Discuss different types of data stores
- ACID vs BASE
- CAP (Brewer’s) Theorem
- Eventual Consistency
Introduction to MongoDB
- JavaScript Object Notation Overview
- Introduce Binary JSON (BSON)
- Starting the database
- Creating Collections and Documents
- Executing ‘simple’ database commands
- Introduce the ObjectID
- Searching for documents using query operators
- Updating and deleting documents
- MongoDB Compass
Spring and MongoDB
- MongoDB Support in Spring Data
- MongoClient and MongoTemplate
- Spring Data MongoDB configuration
- Adding documents to the database
- The @Document and @Field annotations
- Polymorphism and the _class property
Spring Data MongoDB
- MongoRepository
- @EnableMongoRepositories
- Field naming strategy
Spring MongoDB Queries
- Using JSON queries to find documents
- The Criteria object
- The @PersistenceConstructor annotation
Reactive Repositories with MongoDB
- Using Reactive repositories
- ReactiveMongoTemplate
- ReactiveCrudRepository
Spring Data R2DBC
- Reactive Relational Database Connectivity
- DatabaseClient
- Performing CRUD operations
- Reactive Query annotated methods
TENHO INTERESSE