Blog ENI : Toute la veille numérique !
Offre estivale️ ☀️ : de -20% à -30% sur les livres en ligne et vidéos, avec le code PLAGE Cliquez ici !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Java Spring
  3. Éléments constitutifs du framework
Extrait - Java Spring Le socle technique des applications Jakarta EE (5e édition)
Extraits du livre
Java Spring Le socle technique des applications Jakarta EE (5e édition) Revenir à la page d'achat du livre

Éléments constitutifs du framework

Introduction

Ce chapitre aborde d’abord Spring en le situant dans son contexte historique, puis se consacre à la description de ses différents composants et à divers aspects de sa configuration.

Historique

Le framework Spring a historiquement été développé pour simplifier la création d’applications d’entreprise dans des conteneurs web légers tels que Tomcat, en éliminant le besoin de gérer des EJB (Enterprise JavaBeans).

Le tableau suivant montre l’évolution de Java EE, maintenant connu sous le nom de Jakarta EE, à travers les années, mettant en évidence les ajouts et changements clés dans chaque version majeure.

Année

Version

Contenu

1999

J2EE 1.2

Servlets, JSP, EJB (1.1), JMS, RMI

2001

J2EE 1.3

EJB (2.0 CMP), JCA

2003

J2EE 1.4

EJB (2.1 MDB), web services, JAX-RPC, Deployment Specification

2006

Java EE 5

EJB (3.0 annotations), JPA, Annotations, JSF, JAX-WS

2009

Java EE 6

Profil web, Servlet 3.0, EJB (3.1 singletons, lite, asynchronous), CDI, JAX-RS

2013

Java EE 7

JMS 2.0, JAX-RS 2.0, Servlet 3.1, API JSON, WebSockets

2017

Java EE 8

CDI 2.0, JSON-B 1.0, Servlet 4.0, JAX-RS 2.1, JSF 2.3, JSON-P 1.1, Bean Validation 2.0, JPA 2.2, WebSocket 1.1

2019

Jakarta EE 8

Rebranding de Java EE 8 sous l’égide de la Fondation Eclipse, compatibilité avec Java EE 8

2020

Jakarta EE 9

Changement de l’espace de noms javax.* en jakarta.*, nettoyage des spécifications obsolètes

2021

Jakarta EE 9.1

Support du JDK 11, améliorations mineures par rapport à Jakarta EE 9

Historiquement, peu après l’apparition de Java, les JavaBeans émergent, principalement utilisés dans des bibliothèques graphiques comme AWT. Cependant, il n’y avait pas d’équivalent côté serveur jusqu’à l’introduction des EJB 1, qui s’écartaient considérablement des principes de base des purs JavaBeans. Les EJB 2 compliquèrent davantage la situation.

Durant cette période, les JVM (Java Virtual Machines) étaient de petite taille, nécessitant leur multiplication et leur interconnexion pour créer une JVM composite plus grande. Ces JVM occupaient presque toute la mémoire vive des machines, qui étaient regroupées en clusters. Dans ces clusters, un nœud maître supervisait plusieurs nœuds secondaires pour augmenter la mémoire composite et la capacité de calcul.

J2EE est un acronyme pour Java 2 Platform, Enterprise Edition. C’est...

Utilité de Spring dans un projet

Le framework Spring est une solution logicielle légère et modulaire, offrant des réponses techniques unifiées aux défis courants des projets. Il fournit des implémentations pour divers design patterns et intègre des librairies d’extension facilitant l’utilisation des bibliothèques logicielles populaires. Spring simplifie la création de web services SOAP, de services REST, et l’accès aux données, en unifiant les différences entre les frameworks standards d’accès aux données grâce à une API unifiée.

Avec Spring, les projets peuvent se concentrer davantage sur les aspects métier, laissant la gestion technique au framework. Sous licence Apache 2.0 et open source, Spring permet aux utilisateurs d’accéder aux sources, de soumettre des demandes d’évolution ou de proposer des corrections via https://github.com/spring-projects. Spring est disponible sur le repository Maven central pour les versions standard et sur les repositories Maven SpringSource pour les versions en développement. Bien que Spring soit compatible avec Maven et Gradle, ce livre se concentre principalement sur Maven.

En tant que solution full stack, Spring inclut toutes les briques techniques nécessaires pour des applications complètes, avec peu de dépendances externes....

Vue d’ensemble et sujets abordés dans l’ouvrage

1. Modules Spring

La documentation Spring liste à ce jour une vingtaine de modules Spring regroupés par thèmes. La version 6 est utilisée pour les exemples de cet ouvrage. 

Le noyau central en version 6

Nom du module

Utilité

spring-core

Les fondamentaux : gestion des objets et des proxies

spring-beans

Le paramétrage et les fabriques de beans

spring-context

Gestion du contexte, EJB, JMX, JNDI, scheduling, validation

spring-context-support

Support pour ehcache, guava, e-mail, scheduling UI

spring-context-indexer

Permet d’améliorer les performances au démarrage de l’application

spring-expression

Expression language Spring : SpEL

Spring-binding

Gestion du binding

AOP (Aspect-Oriented Programming)

Nom du module

Utilité

spring-aop

AOP via les proxies

spring-aspects

Aspects basés sur AspectJ

spring-instrument

Agent d’instrumentation pour la JVM

spring-instrument-tomcat

Agent d’instrumentation pour Tomcat

Securité (org.springframework.security)

Nom du module

Utilité

spring-security-core

Gestion de la sécurité

spring-security-config

Partie configuration de la gestion de la sécurité

spring-security-web

Sécurité pour la partie web

spring-security-crypto

Offre un support pour le chiffrement symétrique, la génération de clés et le codage des mots de passe

spring-security-ldap

Sécurité pour LDAP

spring-security-cas

Permet d’intégrer le système de connexion unique CAS (Central Authentication Service)

spring-security-rsa

Bibliothèque utilitaire pour les chiffrements RSA

spring-security-taglibs

Aide à intégrer la sécurité de manière déclarative dans les vues JSP

spring-security-acl

Pour gérer les listes de contrôle d’accès (ACL, pour Access Control List)

Il y a, pour pratiquement tous les modules, un module complémentaire pour tester des composants qui utilisent les modules.

Il existe des extensions pour Saml, Kerberos.

Sécurité OAuth/OAuth 2

Nom du module

Utilité

spring-security-oauth2

Pour la sécurité OAuth2

spring-security-oauth

Pour la sécurité OAuth1

spring-security-oauth-parent

Projet parent pour le support OAuth

spring-security-oauth2-client

Pour...

Compléments

Les curieux peuvent télécharger une des premières versions de Spring en version 0.9 ici : https://sourceforge.net/projects/springframework/files/springframework/0.9/spring-framework-0.9.zip/download. Elle date du 26/06/2003 et utilise le JDK 1.5.

La version 1.0 est aussi disponible et compile moyennant des modifications mineures.

Nous retrouvons dans ces versions l’essence même de Spring.

Un exercice intéressant consiste à patcher et rebuilder cette version 0.9 avec le JDK 17 et/ou le JDK 21.

Points clés

Points à retenir :

  • Le framework Spring est modulaire.

  • Spring 6 et Spring-boot 3 demandent de passer au minimum au JDK 17.

  • Spring est une alternative à l’utilisation des EJB.

  • Spring a plus de vingt ans.

  • Spring est le framework leader pour le développement d’applications d’entreprise.

  • Les sources de Spring sont disponibles.

  • Spring permet de faire des batchs.