Overview
This 3-day course on Spring 4.x and Microservices provides an in-depth knowledge on the basics of Microservices and understanding of Spring in context of Microservices. The course provides a deep dive into developing Microservices, examining the Microservices architectural style and combines it with a dynamic, lab intensive coding environment. This course explores some practical aspects of Microservices, e.g. monitoring, logging, containerizing, deploying and orchestrating Microservices. In addition, students gain insights on the working knowledge of the Spring framework with other technologies.
What You'll Learn
- Work with OAuth and OpenId
- Design and implement REST services
- Work with Spring Boot and JavaConfig to more effectively and efficiently develop Spring applications
Curriculum
- Spring Architecture
- Dependency Injection
- Spring DI Container
- Bean Creation Using Factories
- Configuration Options: XML, Annotations, or JavaConfig
- Use of Lambda Expressions and Method References in Spring
- Tutorial: Setup Eclipse Neon for Using Maven
- Exercise: Hello World Spring Application
- Exercise: Configuring Dependencies
- Spring’s Pre-Built Factory Beans
- PropertyPlaceholderConfigurer
- Custom Property Editors
- Lazy Bean Resolution
- Ordered Autowiring
- Using Configuration Classes
- Organizing Configuration Classes
- Exercise: Advanced Configuration
- Understand and discuss the continuing trend to reduce the monolithic nature of applications
- Explain the principles and characteristics of microservices
- Recognize both good and poor candidates for microservices
- Work on defining boundaries for microservices
- Make other design decisions relating to communication styles, orchestration and many other issues
- Understand some of the challenges to designing and implementing microservices
- Understand how scaling is achieved using microservices
- Discuss the many options for deploying and managing microservices
- Typical Microservices Stack
- Monitoring Microservices
- Logging
- Containerizing with Docker
- Deploying into Docker
- Orchestration of Microservices
- Motivation and Mindset
- Minimum Viable Product
- Challenges of Data and Data Islands
- Spring Data and Microservices
- PrePersist, PreUpdate, and Repository Interface
- A DevOps-Style Microservice Life Cycle
- Continuous Delivery Pipeline
- Governance
- Tracking APIs and API Consumers
- Aggregator Pattern
- Branch Pattern
- Proxy Pattern
- Chained Pattern
- Circuit Breaker/Bulkhead Isolation Pattern
- Continuous Integration/Delivery Pattern
- Shared Resources as an Anti-Pattern
- Shared Resources as a Pattern
- Async Messaging Pattern
- Microservice Costs
- When to Apply and NOT Apply
- Data lslands
- Dependency management
- Cohesion Creep
- Avoiding Versioning
- OAuth 2.0 Terminology and Concepts
- Usage Models
- OAuth 2.0 Tokens
- OAuth 2.0 Details
- Example: Google Usage Models
- OpenID Connect Overview
- OpenID Providers
- Representational State Transfer
- REST Characteristics
- REST Elements
- REST Architectural Principles
- REST and HTTP
- REST/HTTP: Representation-Oriented
- REST Design Principles
- Exercise: Working With REST
- Effectively Designing RESTful Services
- Best Practices for Endpoint Definition
- Using Query Parameters
- Working with HTTP GET and DELETE
- Working with HTTP PUT
- Working with HTTP POST
- Best Practices for HTTP Methods
- Handling Additional Operations
- Understand how Spring supports the implementation of RESTful services
- Use Spring to map URIs and extract values from the URI
- Work with @RequestMapping to support routing decisions based on what type should be processed by associated method
- Handle response codes
- Work with view resolvers, HTTP message converters, and content negotiation
- Exercise: Working with Spring REST
- Understand how Spring supports browser-based RESTful clients
- Understand how Spring supports Spring-based RESTful clients
- Exercise: Injection in Spring REST
- Exercise: Exception Mapping in Spring REST
- Exercise: Content Negotiation in Spring REST
- Understand the Spring IO Platform
- Understand the IO Bill of Materials
- Understand the IO Foundation
- Learn how the IO Execution will be leveraged
- Learn how Spring Cloud is used for Platform Coordination
- What is Spring Boot
- Explore Spring Boot starters
- Examine Spring Boot’s AutoConfiguration as well as its command-line interface (CLI)
- Understand the Spring Boot Actuator
- Spring Boot JPA Starter
- Examine Spring Boot’s AutoConfiguration
- Understand the Spring Conditionals
- Understand Spring Boot DevTools
- Exercise: Create a “REST JPA Repository”
- Explore additional Spring Boot starters
- Bootstrapping Spring Boot
- Understand Spring Boot Actuators
- Create and run a Spring Thymeleaf MVC application
- Exercise: Create a “Thymeleaf MVC With JPA Repository”
Who should attend
This an intermediate- level Spring 4.x training course, designed for developers who need to understand how and when to use Spring in Java and JEE applications. The course is highly recommended for –
- Java developers
- Full stack developers
- Software developers
- Application developers