【文件属性】:
文件名称:spring 个人笔记
文件大小:815KB
文件格式:DOC
更新时间:2014-12-04 10:34:08
spring
spring 个人笔记
//* 以下for循环是实现模拟spring自动装配(注入)功能
//一开始列出此bean的所有property子元素
for (Element propertyElement : (List)element.getChildren("property")){
//获取property子元素中 属性为name的值(也就是需要注入的参数名称)
String name = propertyElement.getAttributeValue("name");
//获取property子元素中 属性为bean的值 (需要注入参数的类型),此处的bean值是已经在上面初始化好了的bean的ID了。
String bean = propertyElement.getAttributeValue("bean");
//因此此处获取指定ID的bean
Object beanObject = beans.get(bean);
//组成set方法名称:set + 第一个字母大写 + 其它的字母
String methodName = "set" + name.substring(0,1).toUpperCase() + name.substring(1);
System.out.println("methodName = " + methodName);
//获取bean的set方法,参数(方法名,参数:此参数的类型)
Method m = o.getClass().getMethod(methodName, beanObject.getClass().getInterfaces()[0]);
//使用反映机制,执行method方法,从而实现注入功能
m.invoke(o, beanObject);
}