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>
  • 相关阅读:
    Web Storage
    You don't know js
    vue—你必须知道的
    js数据类型
    Python基础 — Matplotlib
    Python基础 — Pandas
    MySQL基础 — 常用命令
    MySQL基础 — 详细安装
    Python机器学习算法 — 支持向量机(SVM)
    Python机器学习算法 — 逻辑回归(Logistic Regression)
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8489999.html
Copyright © 2011-2022 走看看