spring的ClassPathXmlApplicationContext

a387776286 2012-02-26 09:06:44
我想用dom4j模拟一下spring的ioc,可是最后一句总空指针 是怎么回事
public ClassPathXmlApplicationContext() throws Exception {
SAXReader reader = new SAXReader();

// 构造文档对象
Document document = reader.read(new File("src/config/spring/demo0/springMethod/beans.xml"));

Element rootElmt = document.getRootElement();// 获取根元素beans
List<Element> list = rootElmt.elements("bean");// 取名字为bean的所有元素
for (int i = 0; i < list.size(); i++) {
Element element = (Element) list.get(i);
Attribute attr = element.attribute("id");// 通过id找到这个属性
// System.out.println(attr.getName() + "=" + attr.getValue());//通过找到的属性的getName()和getValue()找到属性和值
String clazz = element.attributeValue("class");//通过class找到属性值
Object o = Class.forName(clazz).newInstance();
System.out.println(clazz);
beans.put(attr.getName(), o);

for (Element propertyElement : (List<Element>) element.elements("property")) {
String name = propertyElement.attributeValue("name"); // userDAO
String bean = propertyElement.attributeValue("bean"); // u
Object beanObject = beans.get(bean);// UserDAOImpl instance

String methodName = "set" + name.substring(0, 1).toUpperCase()
+ name.substring(1);
System.out.println("method name = " + methodName);

System.out.println(bean);

Method m = o.getClass().getMethod(methodName,beanObject.getClass().getInterfaces()[0]);
m.invoke(o, beanObject);
}

}

}

xml文件:
<beans>
<bean id="userDAO"
class="com.frank.demo0.springMethod.dao.impl.UserDAOImpl" />
<bean id="userService"
class="com.frank.demo0.springMethod.Service.impl.UserServiceImpl">
<property name="userDAO" bean="userDAO" />
</bean>
</beans>
...全文
205 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,550

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧