Duration
5 days
Introduction
- What is Spring Boot?
- Spring starter Maven Dependencies
- Understanding @SpringBootApplication
- Example of Spring MVC-based RESTful Web Service
- Project Structure
- Externalized Configuration application.properties and YAML
- @ConfigurationPropetrties
- Type Safe Properties
- JSR303 Validation of Properties
- Spring Environment Object
- @Value vs @ConfigurationProperties
- Logging
- Actuators
- Exposing Information about your services
- Customize Health and Info Endpoints
- Custom Metrics and Custom Actuator
- Prometheus Monitoring
- Building Web Applications
- Controllers and ModelAttributes
- Template Views
- Using Embedded and External Databases
- Spring Boot Initializers and Command Line Runners
- Active Profiles
- Form Submissions
- REST Services
- What is REST?
- Restful Controllers
- JSON and XML Data Exchange
- Content Negotiation
- Working with exception handling
- Exception handling
- Angular JS Accessing your Services
- Java Clients using RestTemplate
- ResponseEntity
- Headers
- Status codes
- RequestEntity
- Posting JSON to a Service
- Integration with JMS and other backend services
- Persistence with JPA Repositories
- JPA, EntityManagers, Entity Classes, Annotation mappings
- Spring JPA Data, CrudRepository, PagingAndSortingRepository
- Spring Data Rest, Exposing Databases as Endpoints
- HATEOAS JSON
- @Projections and Excerpts
- Restrict the data sent back to the client
- Spring Unit Testing
- Introduction to Microservices
- What are Microservices?
- Decentralized Governance, Scalability, Fault Tolerance
- Cloud Computing
- Spring Cloud
- Microservice Tradeoffs
- Key Principles – DDD/Bounded Context
- Key Patterns – API Gateway and Security
- Third party Communication using Spring
- Service and Client Discovery
- Netflix OSS
- Core Microservice Patterns using Spring Cloud and Netflix OSS
- Where are my Services?
- Using Service Discovery
- Eureka Servers and Clients
- Scale Services
- Load Balancing with Ribbon using Service Discovery
- A LoadBalanced RestTemplate
- Load Balancing with Ribbon without Service Discovery
- Circuit Breaker, when services fail
- Hystrix
- Callbacks
- Gateway/Edge Services – Providing an API
- Zuul services
- Filtering the Request and Response
- Create Feign Clients to your Services
- Event Driven Services or Sagas
- Messaging frameworks : rabbit MQ
- Keeping Services synchronized with each other
- Creating Message Queues
- Project development and deployment on Spring
- Deploying to Docker container using AWS
- Microservices Security
- Microservices design patterns
Programme scope, delivery arrangements and suitability are confirmed during enquiry.