Les principaux problèmes de cet article sont utilisés pour implémenter l'assemblage d'attribut à l'aide de l'annotation @Resource, qui implique l'injection de dépendance - assemblage manuel, la différence entre les annotations @Autowired et @Resource, etc., comme suit.
Utiliser l'injection de champ (pour la méthode d'annotation): l'injection d'objets dépendants peut être assemblée manuellement ou assemblée manuellement automatiquement. L'assemblage manuel est recommandé dans les applications pratiques, car l'assemblage automatique provoquera des situations inconnues et les développeurs ne peuvent pas prévoir le résultat de l'assemblage final.
Injection de dépendance - Assemblage manuel
Il existe deux méthodes de programmation pour assembler manuellement des objets dépendants.
1. Dans le fichier de configuration XML, configurez-le via le nœud bean, tel que:
<bean id = "OrderService"> // Injection de constructeur <constructor-arg index = "0" type = "java.lang.string" value = "xxx" /> // méthode du secteur de propriétés injection <propriété name = "name" value = "zhao" /> </ bean>
2. Utilisez @Autowired ou @Resource Annotation pour vous assembler dans le code Java. Mais nous devons configurer les informations dans le fichier de configuration XML
<Beans xmlns = "http://www.springframework.org/schema/beans" xmlns = "http://www.w3.org/2001/xmlschema-instance" XSI: ScheMalation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5xsd"> </ beebrols>
Cette configuration enregistre implicitement plusieurs processeurs qui analysent les commentaires:
AnnotationBeanPostprocessor Autowived, CommonannotationBeanPostprocessor
PersistanceNotationBeanProcessor, Obligation requise
3. Différence
Utilisez @Autowired ou @Resource Annotation pour vous assembler dans Java Code. La différence entre ces deux annotations est que @Autowired est assemblé par type par défaut @Resource est assemblé par nom par défaut. Ce n'est que lorsqu'un haricot correspondant au nom ne sera pas trouvé qu'il sera assemblé par type
@Autowiredprivate Persondao Persondao; // Utilisé sur le terrain @AutowiredPublic void SetOrderDao (OrderDao OrderDao) {this.OrderDao = OrderDao; // Utilisé sur la méthode du secteur de la propriété}L'annotation @Autowired consiste à assembler des objets dépendants par type. Par défaut, il nécessite que les objets dépendants doivent exister. Si les valeurs NULL sont autorisées, elle peut être définie sur False; Si nous voulons assembler avec nom, nous pouvons l'utiliser en conjonction avec @qualfier annotation, comme suit:
@ Autowired @ Qualifier ("Persondao") Private Persondao Persondao;L'annotation @Resource, comme @Autowired, peut être annotée sur la méthode du secteur d'un champ ou d'une propriété, mais il est assemblé par nom par défaut. Le nom peut être spécifié via l'attribut de nom de @Resource; Si l'attribut de nom n'est pas spécifié, lorsque l'annotation est marquée sur le champ, le nom du champ par défaut est utilisé comme nom de bean pour rechercher l'objet de dépendance; Lorsque l'annotation est marquée sur la méthode du secteur des propriétés, le nom d'attribut est utilisé comme nom de bean pour rechercher l'objet de dépendance
@Resource (name = "PersondaObean") Private Persondao Persondao;
Remarque: Si l'attribut de nom n'est pas spécifié et que l'objet n'est toujours pas trouvé par défaut, l'annotation @Resource retombe à l'assemblage par type. Mais une fois l'attribut de nom spécifié, il ne peut être assemblé que par nom.
Résumer
Ce qui précède est toute l'explication détaillée de la mise en œuvre du code d'assemblage d'attribut via @Resource Annotation. J'espère que ce sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à ce site:
" Explication détaillée de la méthode et du code de Spring Instanciation Bean "
" Méthode d'usine d'instance de Spring et méthode d'usine statique Exemple de code "
" Spring utilise le code pour lire l'analyse des instances de fichiers de propriétés "
S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!