zoukankan      html  css  js  c++  java
  • 018-面向接口编程的BeanFactory模板代码

    1 BeanFactory工具类

    package www.test.utils;
    
    import org.dom4j.Document;
    import org.dom4j.Element;
    import org.dom4j.io.SAXReader;
    @SuppressWarnings("all")
    public class BeanFactory {
    
        public static Object getBean(String id){
            //生成对象--根据清单生产--配置文件--将每一个bean对象的生产细节配置到配置文件中
            
            //使用dom4j的xml解析技术 导入两个jar包
            // dom4j-1.6.1.jar 和 jaxen-1.1-beta-6.jar
            
            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="www.test.service.impl.AdminServiceImpl"></bean>
                String className = element.attributeValue("class"); 
                //www.test.service.impl.AdminServiceImpl
                
                //使用反射创建对象
                Class clazz = Class.forName(className);
                Object object = clazz.getDeclaredConstructor().newInstance();
                
                return object;
                
            } catch (Exception e) {
                
                e.printStackTrace();
            }
            
            return null;
        }
    }

    2 bean.xml配置

    <?xml version="1.0" encoding="UTF-8"?>
    <beans>
        <!-- 配置CustomerServiceImpl的清单 -->
        <bean id="customerService" class="www.test.service.impl.CustomerServiceImpl"></bean>
        <!-- 配置CustomerDaoImpl的清单 -->
        <bean id="customerDao" class="www.test.dao.impl.CustomerDaoImpl"></bean>
    </beans>
  • 相关阅读:
    Oracle(二)常用操作语句
    Oracle(一)概念理解
    Spring MVC实现文件上传和下载
    Spring MVC 的执行流程
    Spring MVC原理及配置详解
    idea创建maven web项目
    Spring Bean的生命周期
    integer和int的区别
    web项目搜索框智能提示
    html-tab page
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8489999.html
Copyright © 2011-2022 走看看