• 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>
  • 相关阅读:
    wamp5配置及 phpmyadmin密码修改问题
    mysql存储过程详解
    office2013的破解方法
    java jdk配置环境变量
    打包Asp.Net 网站成为一个exe 方便快捷的进行客户演示
    CUDA的学习
    深度学习3线性回归,逻辑回归
    三维重建学习1特征提取
    深度学习2线性回归,逻辑回归
    特征学习2
  • 原文地址:https://www.cnblogs.com/jepson6669/p/8489999.html
Copyright © 2020-2023  润新知