0% ont trouvé ce document utile (0 vote)
6 vues34 pages

Introduction au Framework Spring

Ce document présente un cours sur le framework Spring, incluant son contenu, son historique, et son positionnement sur le marché de l'emploi. Il détaille également les outils nécessaires pour le développement avec Spring, ainsi que les méthodes d'évaluation du module. Enfin, il compare Spring avec ses concurrents comme Jakarta EE et Quarkus.

Transféré par

mariemoueslati615
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues34 pages

Introduction au Framework Spring

Ce document présente un cours sur le framework Spring, incluant son contenu, son historique, et son positionnement sur le marché de l'emploi. Il détaille également les outils nécessaires pour le développement avec Spring, ainsi que les méthodes d'évaluation du module. Enfin, il compare Spring avec ses concurrents comme Jakarta EE et Quarkus.

Transféré par

mariemoueslati615
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Introduction

Up Architecture des systèmes d’information


Bureau E204

© 2022-2023 – ESPRIT – Module Spring – Introduction 1


Plan du Cours

– Introduction :Horaires, Evaluation

– Spring et le Marché de l'Emploi

– Contenu du Module Spring

– Historique Spring

– Concurrents Spring

– Projets Spring

– Framework Spring
– Présentation et Installation des Outils :JDK, Intellij, Tomcat, MySQL, Maven,
Log4J, Junit

© 2022-2023 – ESPRIT – Module Spring – Introduction 2


Horaires

09h00

• Durée Totale :42 heures


• Séances :14 séances 10h30
15
• Cours :12 heures
12h15
• TP :30 heures
13h30 *

• Durée de chaque Séance : 3 heures 15h00


15
• Durée de la Pause :15 minutes
16h45
• *Vendredi :13h45

© 2022-2023 – ESPRIT – Module Spring – Introduction 3


Evaluation

• L’évaluation se fait tout au long du module, et non pas uniquement


à la fin.

• La moyenne du module est calculée comme suit :

Moyenne = Note Contrôle Continu *40% + Note Examen *60%

• Le Contrôle Continu prend en compte l’Assiduité, la Participation,


les TP à faire en cours ou chez vous et aussi un Examen Blanc
Pratique.

• L’Examen sera pratique.

© 2022-2023 – ESPRIT – Module Spring – Introduction 4


Spring et le Marché du Travail

© 2022-2023 – ESPRIT – Module Spring – Introduction 5


Spring et le Marché du Travail

• Les offres d’emploi «Cherche Développeur Java », en général


cherchent un développeur dans les technologies suivantes :

• Front-End :Angular, Spring MVC, VueJS, ReactJS …


• Back-End :Spring, EJB, Hibernate, Spring Data JPA, Quarkus
• Outils : Spring Boot, Maven, GIT, Jenkins, Sonar, …
• Base de Données : PostgreSQL, Oracle, MySQL, …
• Méthode Agile : Scrum, extreme Programming

© 2022-2023 – ESPRIT – Module Spring – Introduction 6


Spring et le Marché du Travail

• Exemple d ’un offre d’emploi:


[Link]

© 2022-2023 – ESPRIT – Module Spring – Introduction 7


Spring et le Marché du Travail

© 2022-2023 – ESPRIT – Module Spring – Introduction 8


Contenu du Module Spring

• Introduction à Spring et Mise en place de l’Environnement


• Spring Boot /Maven
• Spring Data JPA (Première Entité - Associations - CRUD / JPA Repository – JPQL)
• Lombok
• IoC & DI (Injection des dépendances)
• Spring MVC REST ( Postman+ Spring Doc)
• TP étude de cas
• Spring Scheduler
• Spring Batch
• AOP (Aspect Oriented Programmation)
• Examen Blanc Pratique (Spring Boot - REST - Spring Data – AOP-etc..)

© 2022-2023 – ESPRIT – Module Spring – Introduction 9


Bref Historique JavaEE

• 1995 :Java est apparu, développé par James Gosling chez Sun Microsystems.
• 1997 :Les servlets arrivent pour la création des pages web dynamiques.
• 1999 :Les JSP arrivent pour faciliter la création des pages web dynamiques et
résoudre les problèmes de servlets.

• Les JSP séparent les contrôleursde la partie présentation.


• La question qui se pose, comment les servlets/JSP vont assurer, la logique métier

et la persistance ?

• Toujours en 1999 :J2EE vient comme réponse à la question précédente


(transactions, sécurité, messaging ...) en introduisant les EJB.

EJB promettait sécurité et disponibilité mais la réalité était tout autre ( couplage
fort avec le serveur d’application, temps de configuration considérable...).

© 2022-2023 – ESPRIT – Module Spring – Introduction 9


Bref Historique JavaEE

• 1999: J2EE (Java 2 Enterprise Edition) depuis la version 1.2 et jusqu’à la


version 1.4 en 2003).

• 2006: JavaEE 5 ou JEE (Java Enterprise Edition) depuis la version 5 (Ajout


des annotations)
• 2010: Sun a été rachetée par Oracle en 2010 (Java est à la base une
propriété de Sun Microsystems )
Oracle a cédé la plateforme JavaEE à Eclipse Foundation, mais en
exigeant le changement de son nom

• 2017: Java EE 8 (version obselète)


• 2019: Jakarta EE 8 (Nouveau nom JakartaEE à la place de JavaEE )

© 2022-2023 – ESPRIT – Module Spring – Introduction 11


Historique Spring
• 2002: Rod Johnson publie son livre «Expert One-on-One J2EE Design and
Development», dans lequel il propose du code, qui va devenir plus tard le
Framework Spring

• 2004: Rod Johnson publie son livre «J2EE Development without EJB».
• 2004: Spring 1.0, licence Apache 2.0
• 2005: Spring devient populaire, en particulier en réaction par rapport aux EJB 2.x
➔ La configuration de l’application par la main rendait la manipulation de Spring difficile.

• 2006: Spring 2.0 ( Introduction de l’injection de dépendances )


• 2007: Spring 2.5, avec support des annotations
• 2009: Spring 3.0
• 2013: Spring 4.0
• 2017: Spring 5.x,
• Juillet 2022: Spring 5.3.22 (version actuelle )
© 2022-2023 – ESPRIT – Module Spring – Introduction 12
Concurrents Spring

Jakarta EE vs. Spring vs. Quarkus

© 2022-2023 – ESPRIT – Module Spring – Introduction 13


Concurrents Spring

Jakarta EE
• Jakarta EE 8, comme son nom l’indique, est fonctionnellement
identique à Java EE 8, publié par Oracle et possède les mêmes
spécifications.

• Jakarta EE a été optimisé pour le cloud computing.


• Selon la fondation Eclipse, l’un des principaux objectifs de Jakarta
EE est d'accélérer le développement d'applications d'entreprise
pour le Cloud Computing (les applications cloud natives).

© 2022-2023 – ESPRIT – Module Spring – Introduction 14


Concurrents Spring

Jakarta EE
• La plateforme JakartaEE est en pleine mutation et modification.
Attendons qu’elle soit stable.
• La plateforme JavaEE est un ensemble de spécifications JSF, EJB, JPA. Elle
n’est plus maintenue par Oracle, donc bientôt obsolète.
• Le cœur de cette plateforme est les EJB.
• Inconvénients des EJB :
– Difficile à coder, il faut implémenter des interfaces spécifiques …
– Les tests unitaires sont difficiles à réaliser.
– C’est une solution qui nécessite un serveur d’application ⇒ lourd et
gourmand en ressources.

© 2022-2023 – ESPRIT – Module Spring – Introduction 15


Concurrents Spring

Jakarta EE vs. Spring


• Le choix d’une technologie dépend de plusieurs critères dont les
fonctionnalités offertes et l’expérience du développeur (un développeur
avec 10 ans d’expérience JavaEE te dira toujours que JakartaEE est le
meilleur peut importe les concurrents (sentiment d’appartenance)).
• Les défendeurs de JakartaEE mentionneront que le développement de la
plateforme n’est pas lié à une seule compagnie comme c’est le cas pour
Spring. Il s’agit plutôt d’une communauté qui assure la longévité de leurs
projets pour les années à venir.
• Les pro-Spring vous diront qu’au contraire Spring est plus fiable sur la durée
et que le fait qu’il est très demandé sur le marché ( beaucoup plus que
JakartaEE) est une raison évidente pour choisir ce Framework.

© 2022-2023 – ESPRIT – Module Spring – Introduction 16


Concurrents Spring

Quarkus
•Quarkus est un framework Java natif Kubernetes conçu pour les
machines virtuelles Java (JVM) optimisant Java spécifiquement pour les
conteneurs et lui permettant de devenir une plate-forme efficace pour les
environnements sans serveur, cloud et Kubernetes.

• Tout comme Spring, Quarkus a été conçu pour être facile à utiliser dès le
départ, avec des fonctionnalités avec peu ou pas de configuration.

© 2022-2023 – ESPRIT – Module Spring – Introduction 17


Concurrents Spring

Quarkus vs. Spring


• Spring et Quarkus sont en concurrence sur les critères du temps du
lancement et l’occupation de la mémoire.
• L'évolutivité et l'architecture sans serveur sont aussi des critères pris
en considération dans les dernières versions fournies par ces deux
frameworks.

➔ Basé sur la comparaison et la demande du marché, nous allons nous


focaliser dans notre cours sur Spring et utiliser une implémentation de
JPA fournie par Spring :Spring Data JPA.

© 2022-2023 – ESPRIT – Module Spring – Introduction 18


Les Projets Spring

• Site officiel: [Link]

• Spring est un ensemble de projets.


• Spring a une vaste communauté et une bonne documentation.
• Le code est sous licence Apache 2, il est Open Source et disponible
sur GitHub.

© 2022-2023 – ESPRIT – Module Spring – Introduction 19


Les Projets Spring

© 2022-2023 – ESPRIT – Module Spring – Introduction 20


Les Projets Spring
• Spring Framework (Spring Core): C’est le cœur des projets Spring. Ce framework
contient les fonctionnalités de base de Spring. Ce framework contient Spring MVC.
• Spring Batch: Permet le développement des applications de type batch qui peuvent
gérer de gros volumes de données

• Spring Integration: Il s’agit d’un ESB (Enterprise Service Bus) pour interconnecter les
applications d’une entreprise

• Spring Android: A pour but de faciliter le développement d'applications Android


• Spring Boot: C’est un outil Spring qui vous permet d’embarquer un serveur Tomcat
dans votre livrable, et simplifier la livraison et le test de votre application.

• Spring Data JPA: Fournit une implémentation de la couche d’accès aux données.
• Spring Security : permet de gérer l'authentifica tion et les habilitations d'une
application web.

© 2022-2023 – ESPRIT – Module Spring – Introduction 21


Framework Spring (Spring Core)

• C’est quoi un Framework :


– C’est un cadre de développement
– Contient des «bonnes pratiques»
– Permet d’éviter de recoder des classes utilitaires
– Permet de se focaliser sur le métier
• Spring fournit la «plomberie» :le socle technique
• Les développeurs peuvent se concentrer sur le code métier (le vrai
travail)
• «Attention un framework ne doit pas être considéré comme une
plate-forme, dans la mesure où il n'intègre pas d'environnement
d'exécution système ou applicatif. »

© 2022-2023 – ESPRIT – Module Spring – Introduction 22


Framework Spring

• Le Framework Spring est un socle pour le développement


d'applications.

• Il fournit de nombreuses fonctionnalités.


• C’est l’un des Frameworks les plus répandus dans le monde
Java.

• Framework Open Source


• Framework Spring (Spring Core): [Link] framework

• Code Source des projets Spring: [Link]

© 2022-2023 – ESPRIT – Module Spring – Introduction 23


Framework Spring
• Le but de Spring est de faciliter et de rendre productif le
développement d'applications.

• Il fournit beaucoup de fonctionnalités :


– Injection de Dépendances (IoC :Inversion de Control).
– AOP :Aspect Oriented Programming :Injection de Code en RunTime.
– Data Ac cess : Permet de simplifier l’accès aux données (DAO, ORM,
Transaction, …).

– Web :Permet de développer des interfaces web évoluées (MVC).


– Testabilité de l'application facilitée
– Intégration : Spring offre un ESB, qui permet l’intégration et la
communication entre les applications (EAI).

© 2022-2023 – ESPRIT – Module Spring – Introduction 24


Installation des Outils

• Spring Boot 2.0 était la première version de la ligne 2.x et a été publiée le 28
février 2018. L'équipe Spring vient de publier Spring Boot 2.7, ce qui signifie
qu'ils maintiennent la ligne 2.x depuis un peu plus de 4 ans.

• Au total, ils ont publié 95 versions distinctes au cours de cette période et en


novembre 2022 Ils ont publié Spring Boot 3.0.

• Cette révision majeure sera basée sur Spring Framework 6.0 et nécessitera
Java 17 ou une version plus récente. Ce sera également la première version
de Spring Boot à utiliser les API Jakarta EE 9 (Jakarta.*) au lieu de EE 8
(Javax.*).

© 2023-2024– ESPRIT – Module Spring – Introduction 25


Installation des Outils
• Les outils suivant vont nous permettre de développer des applications
Web avec Spring.
• Avant de faire l’installation, vérifiez que vous n’avez pas ces outils déjà
installés. Si c’est la cas, pas besoin de les réinstaller (vous pouvez utiliser
d’autres versions) :
✓ JDK 17 (17.x: peu importe la version mineure- déjà installé sur vos
machine normalement)
✓ Intellij
✓ WAMP 3.1 ou XAMP (déjà installé sur vos machine normalement), pour
avoir MySQL 5.6.17
➔ Par souci d’homogénéité, vous pouvez créer un dossier C:\Products,
dans lequel, vous allez installer tous les outils que nous allons utiliser par la
suite.
© 2022-2023 – ESPRIT – Module Spring – Introduction 26
Installation JDK

• Installer la JDK dans C:\Products\java\jdk-17


• Créer la variable d’environnement système : JAVA_HOME qui
contient le chemin de la JDK:

© 2022-2023 – ESPRIT – Module Spring – Introduction 27


Installation JDK
• Ajouter %JAVA_HOME%\bin au Path :

© 2022-2023 – ESPRIT – Module Spring – Introduction 28


Installation JDK

• Vérifier que Java est bien installé et que la variable


d’environnement est bien positionnée (javac et java) :

© 2022-2023 – ESPRIT – Module Spring – Introduction 29


Installation JDK

• Java -version:

© 2022-2023 – ESPRIT – Module Spring – Introduction 30


Installation Intellij

• Suivre les instructions du workshop pour installer et c onfigurer


IntelliJ

© 2022-2023 – ESPRIT – Module Spring – Introduction 31


Prochain Cours

• Vérifier l’Installation de l’Environnement de travail (JDK, INTELLIJ,


MySQL, Maven)
• Créer un projet Spring Boot
• Comprendre Maven
• Créer vos premiers projets avec les outils ci-dessus.

© 2022-2023 – ESPRIT – Module Spring – Introduction 32


INTRODUCTION SPRING

Si vous avez des questions, n’hésitez pas à nous


contacter :

Département Informatique
UP Architectures des Systèmes d'Information

Bureau E204

© 2022-2023 – ESPRIT – Module Spring – Introduction 33


Introduction

© 2022-2023 – ESPRIT – Module Spring – Introduction 34

Vous aimerez peut-être aussi