Avantage de l'annotation @Autowired en Java
Peut-être, à cause de mon mauvais anglais, je ne pouvais pas comprendre les avantages de l'utilisation de @Autocâblés annotation.
Selon le tutoriel, nous pouvons simplifier la première(I.) pour le deuxième cas(II). par le biais de @Autocâblés.
Ma question est, quel est le sens de l' @Autocâblés ? Car il ne marche pas en dire plus, car sans l'aide de @Autocâblés le compilateur peut comprendre que "EmpDao emDao" et "EmpManager" sont étroitement liés, selon la déclaration.
code de la cité à partir de ici
I.
<bean id="empDao" class="EmpDao" />
<bean id="empManager" class="EmpManager">
<property name="empDao" ref="empDao" />
</bean>
public class EmpManager {
private EmpDao empDao;
public EmpDao getEmpDao() {
return empDao;
}
public void setEmpDao(EmpDao empDao) {
this.empDao = empDao;
}
...
}
II.
<context:annotation-config />
<bean id="empManager" class="autowiredexample.EmpManager" />
<bean id="empDao" class="autowiredexample.EmpDao" />
import org.springframework.beans.factory.annotation.Autowired;
public class EmpManager {
@Autowired
private EmpDao empDao;
}
source d'informationauteur cscsaba | 2011-02-14
Vous devez vous connecter pour publier un commentaire.
@Autowired
est le printemps.@Inject
est la norme équivallent. C'est une annotation qui raconte le contexte (printemps, ou, dans le cas de@Inject
- toute DI-cadre) pour essayer de mettre un objet dans ce domaine.Le compilateur n'a rien à voir avec cela - c'est la DI framework (spring) qui instancie des objets de au moment de l'exécutionet définit leurs dépendances à des points que vous avez spécifié - soit via XML ou via une annotation.
Je suis d'accord c'est un scénario possible pour un DI-cadre pour essayer d'injecter des dépendances dans tous les domaines, même si elles ne sont pas annotés. (Et si vous voulez exclure un domaine particulier, à l'annoter). Mais ils ont choisi l'autre stratégie (configuration-sur-convention). Par la route:
Lorsque le serveur démarre de lui-même. Il trouve
dans le contexte de l'application, puis passe par les classes définies dans les contextes. S'il y a des grains qui sont autocâblés, il injecte dans la classe en se référant au contexte de fichier.
Fondamentalement, il favorise la convention over configuration. Qu'est ce que la plupart des cadres de ces jours-ci pour réduire le temps de développement.
l' @Autocâblés Printemps annotation indique Printemps pour un bean nommé "empDao" et à l'injecter dans le EmpManager classe, sans que vous ayez à ajouter les empDao de haricots comme une propriété dans votre ressort fichier de config.
@Autocâblés dit Printemps de trouver un bean de type déclaré et un fil dans cet haricot, plutôt que d'exiger explicitement de recherche par bean nom. Il peut, dans certaines circonstances, rendre la configuration des applications plus facile si vous avez seulement une mise en œuvre de vos types dans un Ressort donné le contexte.