(一)
知识点: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>