1
The Spring container
- Essential components: core, data access, webmvc, webflux.
- Integration with other technologies.
- Deployment strategies.
- Beyond the Spring Framework.
- Development environment.
- Design practices.
- Spring in the Java EE ecosystem.
- Beyond Spring Framework: security, boot, data.
2
Bean management with Spring Core
- Interceptors and aspect-oriented programming.
- Planned invocations. Profiles. Testing Spring beans.
- Caching and monitoring with JMX.
- Breakdown into layers, the POJO approach.
- State management Dependency injection.
Hands-on work
Creating an n-tier application with Spring Core.
3
Access to data and transaction management
- Support for transactions within tests.
- Spring Data.
- Couplings with different technologies: JDBC, JPA, NoSQL.
- Transaction management.
Hands-on work
Implementation of a persistence layer with JPA and Spring.
4
Packaging and deployment with Spring Boot
- Automatic configuration
- The execution environment.
- Packaging (jar, war, OCI image).
- Dependency management.
- Starters.
- Deployment.
Hands-on work
Create a Spring Boot deliverable from the previously created REST API.
5
Spring Security
- Application security.
- Securing the routes.
- Choosing a user repository.
- Authentication modes (session, JWT)
- Hands-on work
- Create security for the web project.
Hands-on work
REST API: best practices.
6
The basics of the HTTP protocol.
- Setting up a REST API.
- The Bean validation API.
- Exception management.
- Reactive programming with Spring Webflux.
Hands-on work
Develop a web façade that demonstrates the services described above, consumption of RESTful web services by an html/javascript client.
7
Exchanging messages with Spring Websocket
- Theory, design patterns, the pub/sub principle.
- Overview of STOMP and SockJS.
- Support and fallback mechanisms.
- Server- and client-side implementation.
Hands-on work
Creating a publish/subscribe mechanism.
8
Web HMI with Spring MVC
- Refresher on the MVC pattern.
- Views: model access, validation, internationalization, exception handling.
- Validation with the Bean validation API.
Hands-on work
Creating a web application demonstrating the business layer developed previously.