Quelles sont les trois méthodes d'injection de dépendances Spring ?
Les trois méthodes d'injection de dépendance Spring (DI) sont :
1. Injection d'interface
2. >3. Injection de méthode de constructeur
(Tutoriel vidéo recommandé :
vidéo Java) Laissez-moi vous présenter comment ces trois types d'injection de dépendances fonctionnent dans Spring.
Nous avons d'abord besoin des classes suivantes :
Interface Login.java
Classe d'implémentation d'interface LoginImpl.java
Une classe de traitement LoginAction.java
Il existe également une classe de test TestMain.java
LoginImpl.java comme suit :
package com.spring.test.di; public class LoginImpl implements Login{ public String getName(){ return "fengyun"; } } TestMain.java package com.spring.test.di; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class TestMain { /** * @param args */ public static void main(String[] args) {// 得到ApplicationContext对象 ApplicationContext ctx = new FileSystemXmlApplicationContext( "applicationContext.xml"); // 得到Bean LoginAction loginAction = (LoginAction) ctx.getBean("loginAction"); loginAction.execute(); } }
LoginAction.java sera légèrement différent selon la méthode d'injection utilisée.
Regardons la classe LoginAction.java selon la méthode d'injection
Injection de la méthode Setter :package com.spring.test.di;
public class LoginAction {
private Login login;
public void execute() {
String name = login.getName();
System.out.print("My Name Is " + name);
}
/**
* @return the login
*/
public Logic getLogin() {
return login;
}
/**
* @param login
* the login to set
*/
public void setLogin(Login login) {
this.login = login;
}
}
Le fichier de configuration applicationContext.xml est le suivant :
<bean id="login" class="com.spring.test.di.LoginImpl"/> <bean id="loginAction" class="com.spring.test.di.LoginAction"> <property name="login" ref="login"></property> </bean>
Maintenant testMain.java peut être exécuté, et nous pouvons voir que My Name Is fengyun est imprimé sur la console.
OK, c'est la méthode d'injection du ressort.
Injection de méthode constructeurComme son nom l'indique, l'injection de méthode constructeur signifie que nous nous appuyons sur le constructeur de LoginAction pour atteindre l'objectif de DI, comme indiqué ci-dessous :
LoginAction.java package com.spring.test.di; public class LoginAction { private Login login; public LoginAction(Login login) { this.login = login; } public void execute() { String name = login.getName(); System.out.print("My Name Is " + name); } }
Ici, nous avons ajouté un constructeur LoginAction
le fichier de configuration applicationContext.xml est le suivant :
<bean id="login" class="com.spring.test.di.LoginImpl"/> <bean id="loginAction" class="com.spring.test.di.LoginAction"> <constructorarg index="0" ref="login"></constructorarg> </bean>
Nous utilisons constructorarg pour la configuration. L'attribut index est utilisé pour indiquer l'ordre. de paramètres dans le constructeur, s'il y a plusieurs paramètres, configurez
dans l'ordre de 0, 1... Nous pouvons maintenant exécuter testMain.java, et le résultat est exactement le même que si vous utilisiez la méthode Setter pour injecter.
Une chose à noter est : si le constructeur a plusieurs paramètres, tels que : le paramètre 1, le paramètre 2 et le paramètre 2 dépend du paramètre 1, dans ce cas, vous devez faire attention à l'ordre du constructeur , et les paramètres doivent être 1 est placé avant le paramètre 2.
Continuons à parler de l'injection d'interface que nous n'utilisons pas couramment. Prenons LoginAction comme exemple. Nous l'avons modifié comme suit :
LoginAction.java package com.spring.test.di; public class LoginAction { private Logic login; public void execute() { try { Object obj = Class.forName("com.spring.test.di.LoginImpl") .newInstance(); login = (Login) obj; String name = login.getName(); System.out.print("My Name Is " + name); } catch (Exception e) { e.printStackTrace(); } } }
Fichier de configuration :
<bean id="logic" class="com.spring.test.di.LoginImpl"/> <bean id="loginAction" class="com.spring.test.di.LoginAction"> </bean>
. Les deux méthodes d'injection les plus couramment utilisées au travail sont Setter et Constructor.
Tutoriel recommandé :
Programme d'entrée JavaCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

En 2023, la technologie de l’IA est devenue un sujet brûlant et a un impact énorme sur diverses industries, notamment dans le domaine de la programmation. Les gens sont de plus en plus conscients de l’importance de la technologie de l’IA, et la communauté Spring ne fait pas exception. Avec l’évolution continue de la technologie GenAI (Intelligence Artificielle Générale), il est devenu crucial et urgent de simplifier la création d’applications dotées de fonctions d’IA. Dans ce contexte, « SpringAI » a émergé, visant à simplifier le processus de développement d'applications fonctionnelles d'IA, en le rendant simple et intuitif et en évitant une complexité inutile. Grâce à « SpringAI », les développeurs peuvent plus facilement créer des applications dotées de fonctions d'IA, ce qui les rend plus faciles à utiliser et à exploiter.

En tant que leader du secteur, Spring+AI fournit des solutions de pointe pour divers secteurs grâce à son API puissante et flexible et ses fonctions avancées. Dans cette rubrique, nous examinerons les exemples d'application de Spring+AI dans divers domaines. Chaque cas montrera comment Spring+AI répond à des besoins spécifiques, atteint ses objectifs et étend ces LEÇONS APPRISES à une gamme plus large d'applications. J'espère que ce sujet pourra vous inciter à comprendre et à utiliser plus profondément les possibilités infinies de Spring+AI. Le framework Spring a une histoire de plus de 20 ans dans le domaine du développement logiciel, et cela fait 10 ans que la version Spring Boot 1.0 est sortie. Maintenant, personne ne peut contester ce printemps

Comment implémenter les transactions programmatiques Spring : 1. Utilisez TransactionTemplate ; 2. Utilisez TransactionCallback et TransactionCallbackWithoutResult ; 3. Utilisez les annotations Transactional ; 4. Utilisez TransactionTemplate en combinaison avec @Transactional ;

Comment définir le niveau d'isolement des transactions dans Spring : 1. Utilisez l'annotation @Transactional ; 2. Définissez-le dans le fichier de configuration Spring ; 3. Utilisez PlatformTransactionManager ; Introduction détaillée : 1. Utilisez l'annotation @Transactional, ajoutez l'annotation @Transactional à la classe ou à la méthode qui nécessite la gestion des transactions et définissez le niveau d'isolement dans l'attribut 2. Dans le fichier de configuration Spring, etc.

JUnit est un framework de tests unitaires Java largement utilisé dans les projets Spring et peut être appliqué en suivant les étapes suivantes : Ajouter une dépendance JUnit : org.junit.jupiterjunit-jupiter5.8.1test Écrire des cas de test : utilisez @ExtendWith(SpringExtension.class) pour activer l'extension, utilisez les beans d'injection @Autowired, utilisez @BeforeEach et @AfterEach pour préparer et nettoyer, et marquez les méthodes de test avec @Test.

Spring est un framework open source qui fournit de nombreuses annotations pour simplifier et améliorer le développement Java. Cet article expliquera en détail les annotations Spring couramment utilisées et fournira des exemples de code spécifiques. @Autowired : Autowired L'annotation @Autowired peut être utilisée pour câbler automatiquement les beans dans le conteneur Spring. Lorsque nous utilisons l'annotation @Autowired où les dépendances sont requises, Spring trouvera les beans correspondants dans le conteneur et les injectera automatiquement. L'exemple de code est le suivant : @Auto

Dans Go, le mode d'injection de dépendances (DI) est implémenté via le passage de paramètres de fonction, y compris le passage de valeurs et le passage de pointeurs. Dans le modèle DI, les dépendances sont généralement transmises sous forme de pointeurs pour améliorer le découplage, réduire les conflits de verrouillage et prendre en charge la testabilité. En utilisant des pointeurs, la fonction est découplée de l'implémentation concrète car elle ne dépend que du type d'interface. Le passage du pointeur réduit également la surcharge liée au passage d'objets volumineux, réduisant ainsi les conflits de verrouillage. De plus, le modèle DI facilite l'écriture de tests unitaires pour les fonctions utilisant le modèle DI, car les dépendances peuvent être facilement simulées.

Dans les systèmes de gestion back-end, le contrôle des autorisations d'accès est généralement requis pour limiter la capacité des différents utilisateurs à accéder aux interfaces. Si un utilisateur ne dispose pas d'autorisations spécifiques, il ne peut pas accéder à certaines interfaces. Cet article utilisera le projet waynboot-mall comme exemple pour présenter comment les systèmes de gestion back-end courants introduisent le cadre de contrôle des autorisations SpringSecurity. Le schéma est le suivant : Adresse du projet waynboot-mall : https://github.com/wayn111/waynboot-mall 1. Qu'est-ce que SpringSecurity SpringSecurity est un projet open source basé sur le framework Spring, visant à fournir une sécurité puissante et flexible ? pour les applications Java.
