Mybatis针对入门案例的设计模式分析 读取配置信息的方法 设计模式(后面补详细

2020-02-19 14:41:20 浏览数 (1)

针对入门案例的设计模式分析

主要分析的是main函数里面的各个步骤

代码语言:javascript复制
        //1.读取配置文件 目的是将SqlMapConfig.xml的信息加载进去
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
                                                        /**链接数据库的信息*/
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
                                                /**有了工厂就可以操作生产对象*/
        SqlSessionFactory factory = builder.build(in);
        //3.使用工厂生产SqlSession对象
        //  只有Dao的接口没有具体功能的实现所以得想办法把实现加出来
        SqlSession session=factory.openSession();
        /**这个对象就可以操作数据库(非直接,用dao操作)*/
        //4.使用SqlSession创建Dao接口的代理对象
        IUserDao userDao = session.getMapper(IUserDao.class);
        /**括号内的dao接口,我们只有dao接口所以要创建代理对象*/
        //5.使用代理对象执行方法
        List<User> users =userDao.findAll();
        for(User user: users){
            System.out.println(user);//打印的功能
        }
        //6.释放资源
        session.close();
        in.close();

解析 放大看图!!

名词解读

读取方式

一、采用ClassLoader方式进行读取配置信息

代码语言:javascript复制
ClassLoader cl = 类名.class.getClassLoader();

优点是:可以在非Web应用中读取配置资源信息,可以读取任意的资源文件信息

缺点:只能加载类src下面的资源文件,不适合装载大文件,否则会导致jvm内存溢出

二、调用类加载器对象的方法

代码语言:javascript复制
public InputStream getResourceAsStream(String name);

使用的是当前类的相对路径

设计模式

(后面写详细点附上链接 暂时大家可以看看其他人写的 不难理解

构建者模式

把对象的创建细节隐藏,是使用者直接调用方法即可拿到对象

工厂模式

降低类之间的依赖关系(解耦)

构代理模式

不修改源码的基础上对已有方法增强

0 人点赞