(层与层之间的解耦)面向接口的编程
2017-10-17 00:00
417 查看
package com.itheima.utils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class BeanFactory { public static Object getBean(String id){ //生产对象---根据清单生产----配置文件----将每一个bean对象的生产的细节配到配置文件中 //使用dom4j的xml解析技术 try { //1、创建解析器 SAXReader reader = new SAXReader(); //2、解析文档---bean.xml在src下 String path = BeanFactory.class.getClassLoader().getResource("bean.xml").getPath(); Document doc = reader.read(path); //3、获得元素---参数是xpath规则 Element element = (Element) doc.selectSingleNode("//bean[@id='"+id+"']"); //<bean id="adminService" class="com.itheima.service.impl.AdminServiceImpl"></bean> String className = element.attributeValue("class"); //com.itheima.service.impl.AdminServiceImpl //使用反射创建对象 Class clazz = Class.forName(className); Object object = clazz.newInstance(); return object; } catch (Exception e) { e.printStackTrace(); } return null; } }
<?xml version="1.0" encoding="UTF-8"?> <beans> <!-- 配置AdminServiceImpl的清单 --> <bean id="adminService" class="com.itheima.service.impl.AdminServiceImpl"></bean> <!-- <bean id="adminService" class="com.itheima.service.impl.AdminServiceImpl2"></bean> --> <bean id="adminDao" class="com.itheima.dao.impl.AdminDaoImplMySql"></bean> <!-- <bean id="adminDao" class="com.itheima.dao.impl.AdminDaoImplOracle"></bean> --> </beans>
相关文章推荐
- 在Activity之间如何面向接口编程?
- Spring核心框架IOC---- Spring项目程序架构---- 面向接口编程
- 面向接口编程的初步理解
- [Java] Spring3.0 面向抽象(接口)编程
- Golang面向API编程-interface(接口)
- 为什么要面向接口编程
- 类已死,接口万岁: Qi4j提出面向组合编程思想
- 面向接口的编程
- 面向接口编程及面向接口编程的好处
- 如何理解“面向接口的编程”
- 【spring框架】什么是面向抽象(接口)编程
- 面向接口、对象、方面编程区别
- 面向接口编程的点
- 面向接口编程详解(三)——模式研究
- 面向接口编程
- volley 框架剖析(一) 面向接口的编程
- PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
- [Java] Spring3.0 面向抽象(接口)编程
- ASP.NET MVC3实战系列(二):面向接口编程,提高系统可测试性。
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程