Java的反射机制可以说是在Spring中发挥的淋漓尽致下面要看的代码就是通过反射机制来实现向一个类注入其实际依赖的类型这个过程的实现会交由Spring容器来帮我们完成
JavaBean中针对属性一般都有一组设置/获取方法(setXXX/getXXX)这两个方法可以由IDE给我们自动产生当然你也可以手动进行编写这是你的自由下面的例子就是Spring中利用setter方法来实现依赖注入
源代码如下
package compp;
//一个普通的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) {
thisage = 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=//XMLSchemainstance
xmlns:p=/schema/p
xsi:schemaLocation=/schema/beans /schema/beans/springbeansxsd>
<bean id=sentence class=comppSentence/>
<bean id=person class=comppPerson>
<! 从这里可以看出的是属性名是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>
</beans>