Introduction à la formation Spring 5
Présentation générale et objectifs de cette formation Spring
Spring Framework 5, nouveautés et architecture
Positionnement dans l’écosystème Java EE
Conteneur léger : concepts, cycle de vie
Inversion de contrôle et injection de dépendances
Approche Model View Controller avec Spring MVC
Programmation Orientée Aspect (POA)
L’IDE Spring Tools Suite
Exemples de cas pratiques : tour de table, présentation des participants, échanges sur les contextes professionnels, les perspectives d’application des nouvelles compétences et configuration de l’environnement de développement.
Spring Core et configuration
Types de configuration : en Java ou par annotations
Beans, Bean Factory et ApplicationContext
Modes singleton et prototype : comprendre la notion de scope
Gérer les propriétés
Utiliser SpEL (Spring Expression Language)
Configurer et activer les profils
Les méthodes d’injection de dépendances
Annotations @Component, @Autowired, @Qualifier, @Ressource…
Exemples de cas pratiques : configurations de Spring, création d’une première application en utilisant Spring Core, déclaration de beans et création de différents contextes.
Programmation Orientée Aspect
Les limites de la POO et les apports de la POA
Concepts fondamentaux et terminologie : aspect, joinpoint, advice, poincut, etc
Les différents types d’advice : @Around, @Before, @After…
Proxies et ProxyFactoryBean
Différences entre Spring AOP et AspectJ
Exemples de cas pratiques : mise en œuvre des concepts de POA, déclaration d’un pointcut, implémentation d’un advice.
Test
JUnit 5, présentation générale
Les objets mock et les tests unitaires
L’annotation @DirtiesContext et la mise en cache du contexte applicatif
Sélection des profils
Exemples de cas pratiques : mise en place de tests unitaires et d’intégration
Accès aux données (JDBC, JPA et Hibernate)
Comment Spring s’intègre avec les technologies d’accès aux données
Le pattern DAO (Data Access Object), classes abstraites
Utiliser les APIs d’encapsulation et le JdbcTemplate de Spring
Spring et les ORMs (mapping objet-relationnel)
Travailler avec le framework Hibernate
Gérer les ressources, configurer la SessionFactory
Utiliser la Java Persistence API avec Spring
La gestion des transactions : notions et mise en œuvre
L’interface PlatformTransactionManager
Les transactions dans les tests
Introduction à Spring Data
Exemples de cas pratiques : implémentation d’une couche de persistance, DAO avec les APIs Hibernate, démarcation de transactions.
Spring Boot
Qu’est-ce que Spring Boot ? Avantages et principes de fonctionnement
Configurer un projet Spring Boot
Utiliser les starters pour gérer les dépendances
Aller plus loin que le paramétrage par défaut
Utiliser les avantages de Spring Boot pour le test
Exemple de cas pratique : création d’une application simple en utilisant Spring Initializr.
Spring MVC pour les applications web
Bref retour sur le pattern MVC
Spring MVC, architecture et composants utiles
Signature des méthodes
Résolution des vues et utilisation de Thymeleaf
L’API Bean validation
Gérer les exceptions
Utiliser les annotation spécifiques (@Controller, @RestController, @GetMapping)
Configurer Spring MVC avec Spring Boot
Options de packaging
Introduction à la programmation réactive avec Spring WebFlux
Exemples de cas pratiques : création et configuration d’une application Spring MVC.
Architecture REST et Spring MVC
Retour sur le style d’architecture logicielle REST
@ResponseStatus : contrôler les codes de retour HTTP
@RequestMapping, @RequestBody et @ResponseBody
Configurer HttpMessageConverter
Spring Security
Vue d’ensemble, quel problème Spring Security résout-il ?
Sécuriser des routes et configurer l’authentification
Access Control List (ACL)
Exemple de cas pratique : mise en œuvre de la sécurité sur l’application web développée précédemment.