English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Analyse détaillée de l'auto-configuration et du balayage des annotations de Spring

1 Auto-assembly de javabean

Auto-injection, réduire les informations de configuration du fichier xml.

<?xml version="1.0" encoding="UTF-8"?>
<!-- introduire les contraintes du fichier xml -->
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
  <!-- 1 Instanciation de l'objet Dao id : accomplir la référence de l'objet class : spécifier le nom complet de la classe correspondante à l'objet à créer -->
  <bean id="usersDao" class="org.guangsoft.dao.impl.UsersDaoImpl">
  </bean>
  <!-- 2Instanciation de service autowire : l'effet des attributs, accomplir l'auto-assembly des dépendances d'objets no (par défaut) byName : utiliser le nom de la méthode set correspondant à l'attribut à injecter et l'id de l'objet dans le conteneur Spring pour correspondre, si correspond, effectuer l'auto-injection 
    byType : utilisez le type de méthode set correspondant à l'attribut à injecter et le type de l'objet dans le conteneur Spring pour faire correspondre, si elles correspondent, effectuez l'injection automatique constructor : choisir entre byName et byType (d'abord byName, puis byType si byName ne correspond pas) 
    Utilisation réelle : byName -->
  <bean id="usersService" class="org.guangsoft.service.impl.UsersServiceImpl"
    autowire="byType">
  </bean>
  <!-- 3Instancier l'objet Action -->
  <bean id="usersAction" class="org.guangsoft.action.UsersAction"
    autowire="byType">
  </bean>
</beans>

2 Les annotations de scan de Spring

Utiliser les annotations de scan de Spring pour restructurer la structure en trois couches. Configurez moins de contenu

Dans le fichier applicationContext.xml, importer le xsd de scan

l Activer la balise de scan

<?xml version="1.0" encoding="UTF-8"?>
<!-- introduire les contraintes du fichier xml -->
<beans xmlns="http://www.springframework.org/schema/beans"
  xmlns:context="http://www.springframework.org/schema/context" [ A1 ]
  xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-4.1.xsd
   ">
  <!-- Activer la balise de scan base-L'attribut package : spécifie les paquets à scanner, les paquets multiples sont séparés par des virgules a.b.c a.b.d a.b.e -->
  <context:component-scan
    base-package="org.guangsoft.dao.impl,
    org.guangsoft.service.impl,org.guangsoft.action"></context:component-scan>
</beans>

Résumé des annotations

Annotation de classe :

@controller(Annotation ajoutée à la couche web)

@service(Annotation ajoutée à la couche service)

@repository(Annotation ajoutée au couche DAO)

@component(Annotation ajoutée aux classes Java, seul cette annotation était disponible dans les versions anciennes de Spring)

Les trois annotations suivantes : insèrent les classes correspondantes dans le conteneur Spring correspondant

Id : la première lettre du nom de la classe en minuscule (par défaut)

Si vous devez spécifier manuellement l'id, ajoutez un paramètre de type String aux trois annotations

@controller(“uAction”)id=uAction

@resouce(Annotation ajoutée aux propriétés des objets nécessitant des dépendances)

Injectez les propriétés nécessaires en utilisant l'auto-configuration

Paramètres : name : auto-configuration par nom

Paramètres : type : auto-configuration par type

Processus d'exécution des annotations

1,chargez le conteneur Spring

2,scannez le conteneur Spring spécifié

3,scannez les classes annotées par trois annotations dans le paquet spécifié, puis ajoutez cette classe au conteneur Spring

4,<beanid=""class="">

5,ajoutez l'annotation @resource aux propriétés de la classe à scanner, puis établiez des relations de liaison selon l'auto-configuration

6,Autowrie

Résumé

Voici le contenu complet de cet article sur l'auto-configuration et l'annotation de balayage de Spring, j'espère que cela vous sera utile. Les amis intéressés peuvent continuer à consulter ce site :

Analyse détaillée de la balayage des composants basés sur les annotations

Analyse des problèmes de configuration de Spring pour scanner plusieurs paquets

Nous vous remercions de bien vouloir signaler toute insuffisance. Merci de votre soutien à ce site !

Déclaration : Le contenu de cet article est issu du réseau, propriété de ses auteurs respectifs, contribué et téléversé par les utilisateurs d'Internet de manière volontaire. Ce site n'en possède pas la propriété, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu suspect de violation de droits d'auteur, veuillez envoyer un email à : notice#oldtoolbag.com (au moment de l'envoi d'un email, veuillez remplacer # par @ pour signaler une infraction, et fournir des preuves pertinentes. Une fois confirmé, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.)

Vous pourriez aussi aimer