tx注入器 Spring中DI设置器注入
Spring中DI设置器注入
Java的反射机制可以说是在Spring中发挥的淋漓尽致 下面要看的代码就是通过反射机制来实现向一个类注入其实际依赖的类型 这个过程的实现会交由Spring容器来帮我们完成
JavaBean中针对属性一般都有一组设置/获取方法(setXXX/getXXX) 这两个方法可以由IDE给我们自动产生 当然你也可以手动进行编写 这是你的自由 下面的例子就是Spring中利用setter方法来实现依赖注入
源代码如下
package pp;
//一个普通的JavaBean
public class Person {
//人的名字
private String S_name;
private String S_addr;
private int age;
//getter方法
public int getS_Age() {
return age;
}
//setter方法
public void setS_Age(int age) {
this age = age;
}
//setter方法
public String getaddr() {
return S_addr;
}
//getter方法
public void setaddr(String addr) {
S_addr = addr;
}
//构造函数
public Person(){}
//getter方法
public String getName() {
return S_name;
}

//setter方法
public void setName(String name) {
S_name = name;
};
}
<?xml version= encoding= UTF ?>
<beans
xmlns= /schema/beans
xmlns:xsi= / /XMLSchema instance
xmlns:p= /schema/p
xsi:schemaLocation= /schema/beans /schema/beans/spring beans xsd >
<bean id= sentence class= pp Sentence />
<bean id= person class= pp Person >
<! 从这里可以看出的是属性名是setter方法里去掉set的部分 即setXXX中的XXX而与具体的属性无关 >
<property name= name value= pptest ></property>
<! 这里你完全可以把setaddr里的参数改成setaddr(String name) 并不会报错 因为判断的依据是setXXX即XXX >
<! 但如果你改成setS_addr这里就要错了 不信你可以试 如果改成setS_addr 则下面的name需要改成S_addr >
<property name= addr value= Beijing ></property>
<! 这里就是上面的一个例子 类的属性名为age 但这里的name却为S_Age >
<! 同时这里也要说明的一个问题是类里面为int 但这里却是字符串类型 这个你不用担心 Spring在进行注入时会自动根据参数的类型进行类型 的转化 >
<property name= S_Age value= ></property>
</bean>
lishixinzhi/Article/program/Java/ky/201311/28110