Concevoir et développer des applications avec Spring

Le framework Spring est apparu en 2002 comme une alternative à ce qui s'appelait à l'époque J2EE. Il a démocratisé l'injection de dépendances en Java et propose une offre complète et cohérente pour réaliser des applications backend: accès aux données, transactions, tests, AOP (aspect oriented programming), échanges HTTP (REST, MVC). Spring Boot, apparu en 2014 est incontournable, il apporte une facilité pour développer et déployer des applications Spring.

Ce cours vous permettra de maitriser tous ces aspects du framework.

(28 heures)

En présentiel ou en classe virtuelle
En français ou en anglais
Public

Développeurs et développeuses Java, architectes

Accessible aux personnes en situation de handicap

Délai

Le cours peut être organisé dans un délai d'un mois.

Objectifs

A l'issue du cours vous saurez:

Prérequis

Ce cours demande une connaissance solide des bases de la programmation Java (principes de la programmation orientée objet, types génériques, annotations, expressions lambda), une habitude de travailler avec Eclipse ou IntelliJ.

Méthodes pédagogiques

Programme détaillé

Introduction
  • Rappel des bonnes pratique de conceptions.
  • Les patterns au coeur du framework Spring: singleton, prototype, strategy, proxy, factory.
  • Les composants essentiels du framework Spring: core, accès aux donnés, webmvc.
  • Relation entre Spring framework et Spring boot.
  • L'environnement de développement.
  • Les stratégies de déploiement: JAR, image OCI, application native.
Gestion des beans avec Spring Core
@Bean
  • L'ApplicationContext.
  • Déclaration d'un bean Spring.
  • Les profiles et l'annotation @Conditional.
  • L'injection de dépendances.
  • L'accès aux propriétés.
  • Les callbacks.
  • Tests d'un bean Spring, couplage avec Junit.
  • Planification.
  • Supervision avec JMX.
  • Les intercepteurs: cache, transaction, AOP.
  • La configuration automatique.

Mise en pratique: créer une application n-tiers avec Spring Core et Spring boot.

Accès aux données et gestion des transactions
Data
  • Rappels, bonnes pratiques (I/O non bloquantes, principes ACID, pool de connexions, théorème CAP).
  • L'apport de Spring: l'implémentation du pattern unit of work.
  • L'accès aux bases relationnelles avec le JdbcClient.
  • Le couplage avec Jakarta persistance API (JPA).
  • La démarcation transactionnelle avec le PlatformTransactionManager.
  • Introduction à Spring Data.

Mise en pratique: accéder aux données d'une base relationnelle avec Spring, appliquer des transactions.

API REST avec Spring MVC
@GetMapping
  • Utilisation du serveur web embarqué.
  • Activation des I/O non bloquantes avec les virtual threads.
  • Bonnes pratiques de conception d'une API REST.
  • L'écriture d'un contrôleur.
  • La validation.
  • La gestion des exceptions.
  • Les tests d'une API REST avec MockMVC.

Mise en pratique: développer une API exposant la couche métier développée précédemment, consommation des web services REST par un frontend HTML/JavaScript.

IHM server side avec Spring MVC
text/html
  • Les vues, le rôle du template engine.
  • Le modèle.
  • La gestion des exceptions.
  • La validation.
  • L'internationalisation des messages.

Mise en pratique: réaliser un frontend MVC pour exposer la couche métier développée précédemment.

Prix et financements

2 12

Réduction de 50% pour les associations reconnues d'utilité publique.

Sources de financements pour les organisations françaises:

Contact

Questions, inscriptions, demande d'adaptation: