spring中构造函数注入,简单来说,就是通过beans.xml中,设置相应的值,并且通过bean类中的构造函数进行注入这些值。
文件结构
Goods类
package com.test.innerbean;
public class Goods {
private String goodsName;
private int price;
public Goods(String name,int price)
{
goodsName=name;
this.price=price;
}
public void say()
{
System.out.println("goodsname:"+goodsName+" price:"+price);
}
}
beans.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-2.5.xsd">
<bean id="goods" class="com.test.innerbean.Goods">
<constructor-arg value="茶杯"></constructor-arg>
<constructor-arg value="12"></constructor-arg>
</bean>
</beans>
测试类
package com.test.innerbean;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BeanFactory factory=new XmlBeanFactory(new ClassPathResource("com/test/innerbean/beans.xml"));
Goods goods=(Goods)factory.getBean("goods");
goods.say();
}
}
输出结果
我们可以看到,能够产生Goods类的一个实例,并且对这个实例进行输出测试,发现也的确获得了相应的值。