Lorsque vous utilisez la numérisation des composants, vous devez spécifier le chemin de balayage dans la configuration XML maintenant
<Context: Component-Scan Back-Package = "Yangjq.Test">
L'instanciation du conteneur scanne toutes les classes de composants sous le package yangjq.test et son sous-package.
Ce n'est que lorsque les définitions des classes de composants sont précédées des marques d'annotation suivantes que ces classes de composants seront analysées dans le conteneur à ressort.
- @Component General Annotation
- @name annotation générale
- @Repository Persistance Couche COMPOSANT ANNOTATION
- @Service Business Couche Composant Annotation
- @Controller Control Cose Calque Composant Annotation
nom
Le composant générera une valeur d'ID par défaut (nom de classe commençant par les minuscules) pendant le processus de balayage. Cela peut également être personnalisé dans la marque d'annotation, comme:
// c'est l'ID par défaut, la valeur est OracleuserDao @ RepositoryPublic Class OracleUserDao implémente userdao {} // Ceci est un ID personnalisé, la valeur est LoginService @ service ("LoginService") Classe publique UserService {}Portée des composants
La portée par défaut des composants gérées par ressort est "Singleton". Si vous avez besoin d'autres lunettes, vous pouvez utiliser @Scope Annotation, il suffit de fournir le nom de la portée dans l'annotation.
@Scope ("Prototype") @ RepositoryPublic classe OracleUserDao implémente UserDao {}Initialisation et destruction
@PostConstruct et @Predestroy Annotation Les balises sont utilisées pour spécifier les méthodes de rappel d'initialisation et de destruction, telles que:
classe publique ExempleBean {@postConstruct public void init () {// ......... Initialisation} @predestroy public void destrust () {// ...... destroy}}Annotation pour les haricots avec une relation d'injection de dépendance
Il peut utiliser l'un des éléments suivants pour mettre en œuvre l'injection relationnelle
- @Resource
- @ Autowired / @ qualificatif
- @ inject / @ nommé
Habituellement, il y a beaucoup de @Resources utilisés, alors parlons de @Resource. Si vous utilisez les autres, recherchez-les et lisez-les.
Les balises d'annotation @Resource peuvent être utilisées avant les définitions de champ ou les définitions de méthode de setter. Par défaut, la première injection de correspondance est utilisée par le nom, puis tapez l'injection de correspondance.
classe publique UserseRivce {// @ Resource Ceci est utilisé pour définir un userdao privé userdao; @Resource // Ceci est utilisé pour précéder la méthode du setUne erreur se produit lorsque plusieurs haricots correspondants sont rencontrés. Vous pouvez spécifier un nom explicitement, tel que @Resource (name = ”exampledao”).
Résumer
Ce qui précède est toute l'explication détaillée de la numérisation des composants basée sur l'annotation, et j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!