zoukankan      html  css  js  c++  java
  • Spring 注解注入—@Qualifier 注释

    当创建多个具有相同类型的 bean 时,并且想要用一个属性只为它们其中的一个进行装配,在这种情况下,你可以使用 @Qualifier 注释和 @Autowired 注释通过指定哪一个真正的 bean 将会被装配来消除混乱。下面显示的是使用 @Qualifier 注释的一个示例。

    1.这里是 Student.java 文件的内容:

     1 package com.spring.chapter7;
     2 
     3 public class Student {
     4     public String getName() {
     5         return name;
     6     }
     7     public void setName(String name) {
     8         this.name = name;
     9     }
    10     public int getAge() {
    11         return age;
    12     }
    13     public void setAge(int age) {
    14         this.age = age;
    15     }
    16     private String name;
    17     private int age;
    18     
    19 
    20 
    21 }

    2.这里是 Profile.java 文件的内容:

     1 package com.spring.chapter7;
     2 
     3 import java.util.List;
     4 import java.util.Set;
     5 
     6 import org.springframework.beans.factory.annotation.Autowired;
     7 import org.springframework.beans.factory.annotation.Qualifier;
     8 import org.springframework.beans.factory.annotation.Required;
     9 
    10 
    11 
    12 public class Profile {
    13     
    14     @Autowired
    15     @Qualifier("Student")    //这里的值就是bean的id,当我们改变此值跟随我们指定的bean进行注入
    16     private Student student;
    17     
    18     public void printName() {
    19         System.out.println("age:"+student.getName());
    20     }    
    21     
    22     public void printAge() {
    23         System.out.println("name:"+student.getAge());
    24     }
    25 
    26     public Profile() {
    27         System.out.println("--------构造方法------------");
    28     }
    29 }

    3.下面是 MainApp.java 文件的内容:

     1 package com.spring.chapter7;
     2 
     3 
     4 import java.util.List;
     5 
     6 import org.springframework.context.ApplicationContext;
     7 import org.springframework.context.support.AbstractApplicationContext;
     8 import org.springframework.context.support.ClassPathXmlApplicationContext;
     9 
    10 public class Main {
    11     /**
    12      * Spring @Qualifier  注解注入
    13      * author:
    14      * mail:2536201485@qq.com
    15      * 时间:
    16      */
    17 
    18     public static void main(String[] args) {
    19         ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring_xml/spring.xml");
    20         Profile profile=(Profile)applicationContext.getBean("Profile");
    21         profile.printName();
    22         profile.printAge();
    23         
    24         
    25     }
    26 
    27 }

    4.下面配置文件 spring.xml 的示例:

     1     <!-- @Qualifier 注解 -->
     2     <bean id="Profile" class="com.spring.chapter7.Profile">
     3     </bean>
     4     <bean id="Student" class="com.spring.chapter7.Student">
     5         <property name="name" value="张三"></property>
     6         <property name="age" value="23"></property>
     7     </bean>
     8     
     9     <bean id="Student2" class="com.spring.chapter7.Student">
    10         <property name="name" value="李四"></property>
    11         <property name="age" value="22"></property>
    12     </bean>

    运行结果:

    --------构造方法------------
    age:张三
    name:23

  • 相关阅读:
    Kali linux installation instruction
    Source Insight(C/C++/Java编辑器)用法
    Wear OS软件安装指南
    外卖ERP管理系统(一)
    邮轮ERP系统
    使用CEfSharp 下载文件 弹出保存框 IDownloadHandler
    cefSharp通过js操控页面,含跨域操控
    C# Winform 未能加载文件或程序集"System.Data.SQLite"或它的某一个依赖项。试图加载格式不正确的程序
    无法将类型为“System.__ComObject”的 COM 对象强制转换为类类型“mshtml.HTMLInputElementClass
    COMBOBOX绑定DICTIONARY做为数据源
  • 原文地址:https://www.cnblogs.com/ysource/p/12823157.html
Copyright © 2011-2022 走看看