30 0 121KB
Le Framework Spring est l’un des Framework les plus populaires pour le développement des applications en Java. il est très utile pour l’injection de dépendance (DI – Dependency Injection) ou l’inversion de contrôle (IOC – Inversion Of Control), qui aide à développer des applications à couplage faible, ce qui aide automatiquement à tester correctement toute application Java. Qu’est ce que Spring? Il existe de nombreuses fonctionnalités, y compris dans le Framework Spring, qui est également très populaire. Ces fonctionnalités peuvent être divisées en vingt modules, ce qui permet de résoudre de nombreux problèmes fréquents dans toute application java. Certains modules populaires sont expliqués ci-dessous:
Spring JDBC : Chaque fois que nous voulons extraire des données d’une base de données SGBDR, nous pouvons utiliser la structure JDBC par défaut de Spring.
Spring MVC : Principalement utilisés pour développer une application Web.
Spring ORM : Est un module couvrant de nombreuses technologies de persistance, notamment JPA, JDO, Hibernate et iBatis. Spring fournit des classes d’intégration pour chacune de ces technologies, de sorte que chaque technologie puisse être utilisée conformément aux principes de configuration de Spring et s’intègre facilement avec la gestion des transactions de Spring.
Spring AOP : La programmation orientée aspect (AOP) complète la programmation orientée objet (POO) en offrant une autre façon de penser à la structure du programme.
Spring JMS : JMS (Java Message Service) est un middleware utilisé pour envoyer des messages entre clients en envoyant des messages vers une file d’attente de messages, qui sont ensuite utilisés chaque fois que possible pour exécuter une transaction.
Spring Test
Spring Expression Language (SPEL) Qu’est ce que Spring boot? Spring boot est en fait basé sur toutes les fonctionnalités par défaut du spring. Core Spring et MVC peuvent gérer des fonctions complètes de n’importe quelle application Java. Selon la complexité et la configuration, spring boot peut nous aider beaucoup à réduire la complexité liée à la configuration du spring. Autrement dit, Spring Boot est une extension du framework Spring, qui mis à part les configurations standard requises pour la configuration d’une application Spring.
Il adopte une vision de Spring, et a un éco-système de développement plus rapide et plus efficace. Voici quelques-unes des fonctionnalités de Spring Boot: Dépendances de type « starter » pour simplifier la construction et la configuration de
l’application
Serveur intégré pour éviter la complexité lors du déploiement d’applications
Métriques, vérification et configuration externalisée
Configuration automatique
Inversion de contrôle : le contrôle sur l’objet est inversé, le programmer ne plus lui qui contrôle l’objet mais le conteneur IOC, donc les classes ne s’occupe pas de l’instanciation des autres classes. Injection de dépendance : injection d’un Bean dans un autre pour trouver automatiquement les composant dont on a besoin au moment de l’exécution. L'implémentation de l'injection de dépendances proposée par Spring peut se faire de deux façons :
Injection par le constructeur Injection par un setter
la meilleure façon d'injecter des Bean : L'approche recommandée consiste à utiliser les arguments constructor pour les dépendances obligatoires et les setters pour les dépendances facultatives. L'injection de constructeur permet d'injecter des valeurs dans des champs immuables (Qui ne change pas) et facilite les tests.
BeanFactory VS ApplicationContext BeanFactory est une interface représentant un conteneur, qui fournit et gère les instances du Bean. L'implémentation par défaut instancie les Bean quand getBean () est appelé. ApplicationContext est une interface représentant un conteneur contenant toutes les informations, les métadonnées et les Bean dans l'application. L’implémentation par défaut instancie les Bean avec impatience au démarrage de l'application
Bean de Spring Les beans de spring sont des objets Java qui sont initialisés par le conteneur Spring IoC.
La portée du Bean par défaut dans Spring Framework Par défaut, un Spring Bean est initialisé en tant que singleton. La portée d'un Bean Pour définir la portée de Spring Bean, nous pouvons utiliser l’annotation @Scope ou l'attribut "scope" dans les fichiers de configuration XML. Il existe cinq portées prises en charge : - Singleton - Prototype - Demande - Session - Session globale la configuration basée sur Java de Spring C'est l'une des façons de configurer les applications basées sur Spring de manière sécurisée. C'est une alternative à la configuration basée sur XML. Pouvons-nous avoir plusieurs fichiers de configuration Spring dans un projet? Oui, dans les grands projets, plusieurs configurations de ressorts sont recommandées pour augmenter la maintenabilité et la modularité. Vous pouvez charger plusieurs fichiers de configuration Java: 1
@Configuration
2
@Import({MainConfig.class, SchedulerConfig.class})
3
public class AppConfig {
Ou charger un fichier XML qui contiendra toutes les autres configurations: 1
ApplicationContext context = new ClassPathXmlApplicationContext("spring-all.xml");
Et à l'intérieur de ce fichier XML, vous aurez: 1
2
Spring Security Spring Security est un module distinct du framework Spring qui se concentre sur la fourniture de méthodes d'authentification et d'autorisation dans les applications Java. Il prend également en charge la plupart des vulnérabilités de sécurité courantes, telles que les attaques CSRF. Pour utiliser Spring Security dans les applications Web, vous pouvez commencer par une simple annotation: @EnableWebSecurity .
Nommez certains des modèles de conception utilisés dans le cadre de Spring ?
●
Singleton Pattern: Haricots à l'échelle d'un singleton
●
Modèle d'usine: classes d'usine de haricots
●
Patron de prototype: Haricots à l'échelle du prototype
●
Modèle d'adaptateur: Spring Web et Spring MVC
●
Modèle de proxy: prise en charge de la programmation orientée aspect ressort
●
Modèle de modèle de modèle: JdbcTemplate , HibernateTemplate, etc.
●
Contrôleur frontal: Spring MVC DispatcherServlet
●
Objet d'accès aux données: prise en charge de Spring DAO
●
Contrôleur de vue du modèle: Spring MVC
Différence entre @Controller , @Component , @Repository et @Service Annotations Selon la documentation officielle de Spring, @Component est un stéréotype générique pour tout composant géré par Spring. @Repository , @Service et @Controller sont des spécialisations de @Component pour des cas d'utilisation plus spécifiques, par exemple, dans les couches de persistance, de service et de présentation, respectivement. Jetons un coup d'œil aux cas d'utilisation spécifiques des trois derniers:
●
@ Controller - indique que la classe joue le rôle de contrôleur et détecte les annotations @RequestMapping dans la classe
●
@ Service - indique que la classe contient la logique métier et appelle les méthodes dans la couche du référentiel
●
@ Repository - indique que la classe définit un référentiel de données; son travail consiste à intercepter les exceptions spécifiques à la plate-forme et à les relancer comme l'une des exceptions non vérifiées unifiées de Spring
Les annotations de Spring @Autowired Cette annotation est appliquée aux champs, aux méthodes setter et aux constructeurs. L' annotation @Autowired injecte la dépendance d'objet implicitement. Lorsque vous utilisez @Autowired sur des champs et que vous transmettez les valeurs des champs à l'aide du nom de la propriété, Spring affecte automatiquement les champs aux valeurs transmises. @Configuration Cette annotation est utilisée sur les classes qui définissent les beans. @configuration est un fichier XML de configuration analogique - c'est une configuration utilisant la classe Java. La classe Java annotée avec @Configuration est une configuration en elle-même et aura des méthodes pour instancier et configurer les dépendances. @bean Cette annotation est utilisée au niveau de la méthode. L' annotation @ Bean fonctionne avec @Configuration pour créer des beans Spring. Comme mentionné précédemment, @ Configuration aura des méthodes pour instancier et configurer les dépendances. Ces méthodes seront annotées avec @ Bean . La méthode annotée avec cette annotation fonctionne comme ID de bean et crée et renvoie le bean réel. @lazy Cette annotation est utilisée sur les classes de composants. Par défaut, toutes les dépendances auto-générées sont créées et configurées au démarrage. Mais si vous voulez initialiser un bean paresseusement, vous pouvez utiliser l' annotation @Lazy sur la classe. Cela signifie que le bean sera créé et initialisé seulement quand il est demandé pour la première fois. Vous pouvez également utiliser cette annotation sur les classes de @configuration . Ceci indique que toutes les méthodes @ Bean dans @ Configuration doivent être paresseusement initialisées. @ Component Cette annotation est utilisée sur les classes pour indiquer un composant Spring. L' annotation @Component marque la classe Java en tant que bean ou dit composant afin que le mécanisme d'analyse des composants de Spring puisse être ajouté au contexte de l'application.