English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Lors de l'utilisation de la balayage de composants, vous devez spécifier le chemin de balayage dans la configuration XML
<context:component-Retour arrière-package="yangjq.test">
L'instanciation du conteneur balaye tous les composants de classes dans le paquet yangjq.test et ses sous-répertoires.
Seuls les composants de classes définis précédemment avec les annotations suivantes seront balayés par le conteneur Spring
- @Component - annotation universelle
- @Name - annotation universelle
- @Repository - annotation pour les composants de couche de persistance
- @Service - annotation pour les composants de couche d'affaires
- @Controller - annotation pour les composants de couche de contrôle
Nom
Le composant génère une valeur d'identifiant par défaut (nom de la classe en minuscules) pendant le processus de balayage, cette valeur d'identifiant peut également être personnalisée dans l'annotation, par exemple :
//C'est l'identifiant par défaut, la valeur est OracleUserDao @Repository public class OracleUserDao implements UserDao{ } //C'est un identifiant personnalisé, la valeur est loginService @Service("loginService") public class UserService{ }
Portée des composants
Les composants gérés par Spring ont généralement une portée par défaut "singleton", si vous avez besoin d'une autre portée, vous pouvez utiliser l'annotation @Scope, il suffit de fournir le nom de la portée dans l'annotation.
@Scope("prototype") @Repository public class OracleUserDao implements UserDao{ }
Initialisation et destruction
Les annotations @PostConstruct et @PreDestroy sont utilisées pour spécifier les méthodes de rappel d'initialisation et de destruction, par exemple :
public class ExampleBean{ @PostConstruct public void init(){ //....... initialisation } @PreDestroy public void destroy(){ //........ destruction } }
Pour les annotations de Bean avec des relations d'injection de dépendance
Il peut utiliser l'une des plusieurs implémentations suivantes pour l'injection de dépendance
- @Resource
- @AutoWired/@Qualifier
- @Inject/@Named
@Resource est souvent utilisé, disons @Resource, les autres peuvent être recherchés lors de leur utilisation
L'annotation @Resource peut être utilisée devant la définition de champ ou de méthode setter, par défaut, elle se matche d'abord par nom, puis par type pour l'injection
public class UserSerivce{ //@Resource Cela est utilisé devant la définition de champ private UserDao userDao; @Resource //Cela est utilisé devant la méthode setter public void setUserDao(UserDao dao){ this.UserDao = dao; } }
Lorsqu'il y a plusieurs matchs de Bean, l'injection peut entraîner une erreur, vous pouvez spécifier explicitement le nom, par exemple @Resource(name = "exampleDao").
Résumé
Voici la totalité du contenu de cet article sur l'analyse des composants basée sur les annotations, j'espère que cela vous a été utile. Les amis intéressés peuvent continuer à consulter d'autres sujets pertinents sur ce site. Si vous trouvez des insuffisances, n'hésitez pas à laisser un message. Merci de votre soutien à ce site !
Déclaration : le contenu de cet article est issu du réseau, et les droits d'auteur appartiennent aux propriétaires respectifs. Le contenu est contribué et téléversé par les utilisateurs d'Internet de manière volontaire. Ce site ne détient pas de droits de propriété, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu présumé portant atteinte aux droits d'auteur, veuillez envoyer un email à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un email pour signaler une violation, et fournissez des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu présumé illicite.