Spring IOC配置实例
ApplicationContext配置:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:content="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd "> <!--IOC--> <!--一、setters方法--> <!--<bean id="dog" class="com.chinasofti.test2.Dog"> 方法1.index配置 <constructor-arg index="0" value="119"></constructor-arg> <constructor-arg index="1" value="毛蛋"></constructor-arg> 方法2.name配置 <constructor-arg name="id" value="119"></constructor-arg> <constructor-arg name="name" value="毛蛋"></constructor-arg> 方法3.type配置 <constructor-arg type="java.lang.Integer" value="119"></constructor-arg> <constructor-arg type="java.lang.String" value="毛蛋"></constructor-arg> </bean> --> <!-- 二、静态工厂方法 --> <!-- <bean id="dog" class="com.chinasofti.test.Mydog" factory-method="getDog"></bean> --> <!-- 三、导入其他配置文件方法 --> <!-- <import resource="/ApplicationContext2.xml"/> --> <!--依赖注入 <bean id="dog1" class="com.chinasofti.test2.Dog"> <property name="id" value="001"></property> <property name="name" value="汪汪1"></property> </bean> <bean id="dog2" class="com.chinasofti.test2.Dog"> <property name="id" value="002"></property> <property name="name" value="汪汪2"></property> </bean> <bean id="dog3" class="com.chinasofti.test2.Dog"> <property name="id" value="003"></property> <property name="name" value="汪汪3"></property> </bean> --> <!-- 集合类型 <bean id="person" class="com.chinasofti.test.Person"> <property name="id" value="111"></property> <property name="name" value="小明"></property> <property name="list"> <list> <ref bean="dog1"/> <ref bean="dog2"/> <ref bean="dog3"/> <null></null> </list> </property> </bean> --> </beans>
Dog类代码;
package com.chinasofti.test2; public class Dog { public int id ; public String name ; public void init() { System.out.println("初始化方法"); } public void destroy() { System.out.println("销毁方法"); } public Dog() { super(); System.out.println("无参构造"); } public Dog(java.lang.Integer id, java.lang.String name) { super(); this.id = id; this.name = name; System.out.println("有参构造"); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Dog [id=" + id + ", name=" + name + "]"; } }
Mydog类代码:
package com.chinasofti.test; import com.chinasofti.test2.Dog; public class Mydog { /*静态工厂方法 * public static Dog getDog() { return new Dog(116, "小王"); }*/ //普通工厂方法 public Dog getDog(){ return new Dog(); } }
Person类代码(用于测试集合):
package com.chinasofti.test; import java.util.List; import com.chinasofti.test2.Dog; public class Person { public int id; public String name; public List<Dog> list; public Person() { super(); } public List<Dog> getList() { return list; } public void setList(List<Dog> list) { this.list = list; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
测试类代码:
package com.chinasofti.test; import java.util.List; import org.junit.Test; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.chinasofti.test2.Dog; public class TestSpring { @Test public void runnn() { ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("/ApplicationContext.xml"); Dog dog = (Dog) ac.getBean("dog"); System.out.println("dog.getName"+dog.getName());
/*Dog dog1 = ac.getBean("dog", Dog.class); Dog dog2 = ac.getBean("dog", Dog.class); Dog dog3 = ac.getBean("dog", Dog.class); System.out.println(dog1); System.out.println(dog2); System.out.println(dog3);*/ /*Person person = ac.getBean("person",Person.class); System.out.println(person.id); System.out.println(person.name); System.out.println(person.dog.id); System.out.println(person.dog.name);*/ /*Person person = ac.getBean("person",Person.class); List<Dog> list = person.getList(); for (Dog dog : list) { System.out.println(dog); }*/ ac.close(); } }