Spring基于XML的配置:【设置注入】 和 【构造注入】

设置注入的要求:

  • 提供一个无参构造
  • 为要注入的属性提供对应的setter()方法

具体例子

  1. 创建User类
public class User {
    private String userName;
    private String password;
    private List<String> list;

    public User(String userName, String password, List<String> list) {
        this.userName = userName;
        this.password = password;
        this.list = list;
    }

    @Override
    public String toString() {
        return "User{" +
                "userName='" + userName + '\'' +
                ", password='" + password + '\'' +
                ", list=" + list +
                '}';
    }

    public User() {
        super();
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setList(List<String> list) {
        this.list = list;
    }
}
  1. 配置XML文件
  • user1是用构造注入的方式
  • user2是用设置注入的方式
    <bean id="user1" class="com.mason.assemble.User">
        <constructor-arg index="0" value="zhangsan"/>
        <constructor-arg index="1" value="111111"/>
        <constructor-arg index="2">
            <list>
                <value>"constructorValue1"</value>
                <value>"constructorValue2"</value>
            </list>
        </constructor-arg>
    </bean>
<!--    **********************************-->
    <bean id="user2" class="com.mason.assemble.User">
        <property name="userName" value="lisi"></property>
        <property name="password" value="222222"></property>
        <property name="list">
            <list>
                <value>"listValue1</value>
                <value>"listValue2</value>
            </list>
        </property>
    </bean>
  1. 测试
public class Test {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");
        System.out.println(applicationContext.getBean("user1"));
        System.out.println(applicationContext.getBean("user2"));
    }
}

输出:

User{userName='zhangsan', password='111111', list=["constructorValue1", "constructorValue2"]}
User{userName='lisi', password='222222', list=["listValue1, "listValue2]}
发布了157 篇原创文章 · 获赞 0 · 访问量 5027

猜你喜欢

转载自blog.csdn.net/Mason97/article/details/105620463