Spring学习1--前传
来源:互联网 发布:java udp socket 编辑:程序博客网 时间:2024/06/09 19:43
1.什么是IOC(DI)?
把自己new的东西改为容器提供 。 a) 初始化具体值 b)装配
2.好处
灵活装配
<beans><bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl" /><bean id="userService" class="com.bjsxt.service.UserService" ><property name="userDAO" bean="u"/></bean></beans>
public class ClassPathXmlApplicationContext implements BeanFactory {private Map<String , Object> beans = new HashMap<String, Object>();//IOC Inverse of Control DI Dependency Injectionpublic ClassPathXmlApplicationContext() throws Exception {SAXBuilder sb=new SAXBuilder(); Document doc=sb.build(this.getClass().getClassLoader().getResourceAsStream("beans.xml")); //构造文档对象 Element root=doc.getRootElement(); //获取根元素HD List list=root.getChildren("bean");//取名字为disk的所有元素 for(int i=0;i<list.size();i++){ Element element=(Element)list.get(i); String id=element.getAttributeValue("id"); String clazz=element.getAttributeValue("class"); Object o = Class.forName(clazz).newInstance(); System.out.println(id); System.out.println(clazz); beans.put(id, o);
for(Element propertyElement : (List<Element>)element.getChildren("property")) { String name = propertyElement.getAttributeValue("name"); //userDAO String bean = propertyElement.getAttributeValue("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); Method m = o.getClass().getMethod(methodName, beanObject.getClass().getInterfaces()[0]); m.invoke(o, beanObject); } } }public Object getBean(String id) {return beans.get(id);}}
- Spring学习1--前传
- spring aop前传
- 1、uboot学习前传
- spring学习笔记十三 前、后置通知
- socket_学习前传
- android学习前传
- Uboot学习前传
- Jquery学习前传
- Spring mvc 前后端传值交互
- Spring 学习之 bean的前、后处理
- ORACLE系统学习前传
- 2.1.uboot学习前传
- go语言学习道路1-学习前
- spring前录
- Spring前序(一)
- QT学习小记(前传)
- CUDA学习(一)前传
- ARM学习前传_零碎
- 博客声明
- zencart 1.3.9
- python备份文件,以zip格式保存
- CAD画的图导入cadence
- zencart 1.3.9h 中文版
- Spring学习1--前传
- Xcode IPhone xib 转换到 IPad
- 动态二维数组的申请、赋初值、使用、释放空间
- redHat上网连接问题-----Linux:no link present,check cable
- zencart 1.3.9h 中文插件版
- Zen Cart 1.5.1 英文版
- MFC根据图片大小来设置窗口
- zencart 1.5.1 中文版
- 数据检查MD5值运算学习记录