Bean的装配方式

(一)

知识点:Spring容器支持多种形式的Bean的装配方式,比如基于XML的装配,基于注解的装配和自动装配(最常用的就是基于注解的装配)

Spring提供了两种基于xml的装配方式:设值注入(Setter Injection)和构造器注入(Construtor Injection)

1.InstanceTest.java

package com.inspur.assembling;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.inspur.static_factory.Bean2;

public class InstanceTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String xmlPath = "com/inspur/assembling/bean1.xml";
        //2.ApplicationContext 在加载文件时,对bean实例化
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
        
        System.out.println(applicationContext.getBean("user1"));
        System.out.println(applicationContext.getBean("user2"));


    }

}

2.User.java

package com.inspur.assembling;

import java.util.List;

public class User {
    
    //1.设值注入
    //无参构造器
    public User(){
    }
    private String username;
    private Integer password;
    private List<String> list;
    //设置setter方法
    public void setUsername(String username) {
        this.username = username;
    }
    public void setPassword(Integer password) {
        this.password = password;
    }
    public void setList(List<String> list) {
        this.list = list;
    }
    
    //2.构造器注入
    //有参数构造器
    public User(String username, Integer password, List<String> list) {
        super();
        this.username = username;
        this.password = password;
        this.list = list;
    }
    public String toString(){
        return "[User:username="+username+",password:"+password+",list:"+list+"]";
    }
    

}

3.bean1.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 设值注入 -->
    <bean id="user1" class="com.inspur.assembling.User">
        <property name="username" value="zhangsan"></property>
        <property name="password" value="123"></property>
        <property name="list">
            <list>
                <value>设值注入1</value>
                <value>设值注入2</value>
                <value>设值注入3</value>
            </list>
        </property>
    </bean>
    
    <!-- 构造器注入 -->
    <bean id="user2" class="com.inspur.assembling.User">
        <constructor-arg index="0" value="lisi"></constructor-arg>
        <constructor-arg index="1" value="456"></constructor-arg>
        <constructor-arg index="2">
            <list>
                <value>构造器注入1</value>
                <value>构造器注入2</value>
            </list>
        </constructor-arg>
    </bean>
</beans>

猜你喜欢

转载自www.cnblogs.com/sunxiaoyan/p/9105123.html
今日推荐