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

Explication détaillée de la balayage de composants basé sur les annotations

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.

Vous pourriez aussi aimer