0% ont trouvé ce document utile (0 vote)
42 vues5 pages

Spring

Transféré par

salmafraani5
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)
42 vues5 pages

Spring

Transféré par

salmafraani5
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

🌿

Intro
Created by Youssef Meziani

Injection : passer une reference (un candidat d'une contrat) au moment


d’execution), il n’y a pas le keyword “new”
⇒ on évite l’instanciation car les constructeurs peut dépondrent d’autre classe

💡 Le factory pattern : approche de programmation qui permet de créer des


objets sans avoir à spécifier la classe exacte de ces objets.
Cela permet d'échanger l'objet créé de manière souple et pratique.

Role des interfaces :


Le contrat d'interfacage (definie seulement les comportements
d'interfacages) : abstraction pour qu'il fontionne avec tout

Pour simuler l’héritage multiple

Des tags ou des drapeaux : marquer des elements qui ne contient aucune
choses (comme interface "sérialisable")

Contrat d’interfaçage :
Contrat (element intermédiaire) entre un producteur(fournisseur du service) et un
consommateur (consommateur du services) selon des critères bien définie et qu'il
doivent être respecter pour unifier - harmoniser un échange entre les classes
dans un système.

Intro 1
Les conditions pour qu’on dit on a une
contrat :
1. Englober et couverer tout les cas possibles dans mon application

2. Cette contrat ne contient aucun details qui est lier spécifiquement a quelque
chose spécifique ?

Spring:
Outil permettant de satisfaire les dépendances entres objets par injection, basé
sur des fichiers de paramétrage ou de configuration XML ou basé sur des
annotations, gère (création - éxécution - destruction) automatiquement le cycle de
vies de tout les beans, respecte le principe hollywood (don’t call us, we’ll call you)
et c’est un conteneur de beans.

💡 La phase d'initialisation/création (initialisation/instance des beans -


s’occupe des injections de dependance) :
ApplicationContext ctx = ClassPathXmlApplicationContext("appContext.xml");

NB : si on a une erreur , il s’affiche comme une exception RuntimeExeption et on a


un arrêt global de l’app au moment de l'initialisation et aussi il déclenche la
destruction de tout les beans de mon application.

Spring doit connaître comment gérer mes objets (beans) à travers une
configuration avec :

XML : parcequ’il disent que les classes doivent avoir une seul responsabilité
metier, le paramétrage ne fait pas partie de sa responsabilité.

L’inconvénient : l’expérience de développement vas causer des problèmes :
pour récupérer les paramétrage d'une classe je doit faire des grandes
recherches pour l'arriver (c’est un coût supplémentaire)

Annotations : parce que la communauté priorise les annotations dans ces


projet vides qui sont comme exemple pour se baser.

Intro 2

L’avantage : est un principe leger (avoir plus de navigation et une rapidité en
terme de)

📌 Je peux faire des traitements spécifiques ou des personnalisations au


moment de démarrage.

💡 Spring est un conteneur IoC (Inversion of Control) qui facilite le


développement d'applications Java en fournissant un moyen de gérer
les dépendances entre les différents composants d'une application.

💡 Spring se base sur des conteneurs (Bean container)

💡 App -> 1 ou N conteneurs


Conteneur -> 1 ou N beans

Bean :
Simple objets géré par spring qui doit avoir une class (le nom complet de la deps
du package jusqu’à la classe) obligatoirement et un id facultatif (grâce à
l'autowiring basé sur le type et les conventions de nommage automatiques)

💡 une app a un ou plusieurs conteneurs et un conteneurs a un ou plusieurs


bean

Intro 3
💭 une transaction dans une db est un ensemble de requêtes qui se termine
soit par un commit ou un rollback, il s’applique aux données et non pas
la structure des BD

💡 si on modifie le paramétrage on doit exécuter l’app pour vérifier son bon


fonctionnement, car la compilation est seulement pour les fichiers java

🔥 Condition :
- constructeur public avec les paramètre spécifié ou sans (selon notre
classe)
- le chemin ou le package de la classe doit être correcte

💡 si on a une erreur dans le fichier xml contenant les beans, on aura une
erreur d’exécution et pas de compilation car les fichier non java ne sont
pas traité au moment de la compilation.

💡 on doit assurer que tout la creations des beans est passé avec succée ,
sinon il fait rollBack et il detruit tous les beans crée avant et lance une
exeption RunTime.

💡 95% des exeptions de spring sont des exeptions d'execution.

Choix d’injection :
on choisie par accesseur pour améliorer la lisibilité du constructeur (ex: 20
paramètre dans le constructeur)

Scope des beans :

Intro 4
Singleton (default) : une seule instance par contexte.

Prototype : nouvelle instance crée chaque fois que le bean est injecté.

Session : nouvelle instance crée par session utilisateur. Environnement Web.

Request : nouvelle instance crée pour chaque requête. Environnement Web.

Custom : définition de nouvelles règles de gestions. Programmation avancée.

💡 Chaque client a une session même si il n’est pas authentifié

Intro 5

Vous aimerez peut-être aussi