Java 8, Spring, Microservices with Spring Boot & Spring Cloud and Hibernate Certificate for Benjamin Davies
Overview of main changes to Java 8
- Lambda Expressions, Method References, Streams, and Default Methods
Behaviour Parameterization
- Motivation for Lambda Expressions
Overview of Stream and Stream operations
- Filtering, Slicing, Finding, Matching, Mapping, And Reducing
Complex data processing queries using collectors
Leveraging multicore architectures with Streams
Improving existing code using new Java 8 features
- Design Patterns, Refactoring, Testing, And Debugging
Using default methods to evolve APIs
- Usage patterns and rules
Using new java.util.Optional class
Exploring CompletableFuture
Exploring new Date and Time API
Writing Functional-style programs in Java 8
- Higher-Order Functions, Currying, Persistent Data Structures, Lazy Lists, And Pattern Matching
Overview of Spring essentials
- OO principles
- Inversion of Control
- Spring ApplicationContext
- BeanFactory
- XML configuration files
- Why dependency injection?
- Injection through setters
- Injection through constructors
- Setters versus constructors
Introducing to Spring Boot
- Spring WebFlux, SpringFox, Spring Data, Spring Cloud Stream, Docker
Introducing Spring Cloud
- Service discovery
- Edge server
- Centralized configuration
- Circuit breaker
- Distributed tracing
Writing REST APIs in Spring
Defining REST endpoints in Spring MVC
- MVC design pattern
- DispatcherServlet
- Controllers
- Models
- JSPs
Enabling hyperlinked REST resources
Spring Data REST
- Automatically generate repository-based REST endpoints
- Creating tables, entities, and fields
- Working with data sources
- Creating repositories
- Using POST and PUT
- Configuring a path
- Creating an API
- Implementing an API
- Exploring resources
- Paging and sorting
- Maintaining API exposure
- Customizing JSON serialization
- Applying custom finder methods
Consuming a REST API from Spring application
Enabling Spring application to use asynchronous communication
- Java Message Service (JMS), RabbitMQ, and Kafka
Spring Integration project
- Declarative application integration
Project Reactor
- Essentials of reactive programming
Working with Spring WebFlux
Reactive data persistence with Spring Data
- Cassandra and Mongo databases
Introduction to Hibernate
- Architecture/Structure
- The life cycle of objects and identify objects
Hibernate in Action
- Mapping tables on POJO category
- Construction of POJO category
- Mapping properties of the columns in the tables
- Establishing relationships between objects
Transactions in Hibernate
- Local and global transactions
- Overview of API transactions
- Levels of transaction
Language HQL - Hibernate Query Language
Combining Hibernate and Spring applications
Overview of Spring-based microservices
Using Spring Cloud’s Config Server
- Setting up a config server
- Configuring clients of a config server
- Structuring the configuration repository
Applying the circuit breaker pattern
- Resilience4j, Netflix Hystrix\
Adding distributed tracing
- Spring Cloud Sleuth and Zipkin
- Successful and unsuccessful API requests
Using Spring Boot Actuator
- REST endpoints and JMX MBeans
Using the Spring Boot Admin
Exposing and consuming Spring beans as JMX MBeans
Testing with Postman
- Creating resources
- Customizing associations
- Exposing resources
Authenticating and authorizing API access
- OAuth 2.0 and OpenID Connect
Summary and Conclusion