SSM框架
D
自动创建相应的工厂实现。(比较低级的做法可以是:在相应的目标接口的实现类中创建其对应工厂实现类对象的匿名内部类。)
代理模式:通过代理可以实现对工厂实现类的统一管理
工厂模式无法对一系列工厂实现类进行统一的管理。代理模式可以解决这个问题。
工厂对象接口的实现类 – 实现了工厂对象的接口。
代理 – 实现了工厂对象接口。并提供了工厂接口注入。
工厂生产方法 – 提供了工厂实例的注入接口。
那么,可以这样:
工厂对象接口的实现类们注入到代理类中,代理类注入到工厂生产方法中。
其中,代理实现了工厂对象接口。那么它是怎样实现的?
其实,代理相当于一个平台,它提供了工厂接口的注入。它虽然实现了工厂接口,但它不自己调用其中的方法,而是通过注入的工厂接口的实现类去调用其中的方法。
动态代理:通过反射动态地创建代理
由上可知:代理的作用就是实现对工厂实现类的统一管理。
什么统一管理呢?
就是将额外的操作从实现类们中分离,实现对实现类们的统一处理。
传统代理的局限性:要代理的目标对象的接口是死的,只能实现对一种目标对象进行统一管理(包括调用目标对象中的方法)。
但是我们知道,统一管理这些操作可以与目标对象分离开来,实现解耦。这就是动态代理。
动态代理是如何实现的呢?
动态代理类,通过实现InvocationHandler这样一个处理器接口,即可实现动态代理。
那么InvocationHandler 处理器是怎么做的呢?
首先需要知道你要对哪一类或哪几类对象们(即接口列表)进行代理,
然后需要知道,你要对这些对象们进行怎样的代理(即动态代理类),
此外,还需要接口的类加载器。(类加载器的作用就是读取该类的字节码文件,创建该类的对象。因为反射获取构造器有局限性,此处不用反射创建该代理实现类)。
有了这三个条件, InvocationHandler 处理器 就可以动态地创建相应的代理类对象。
Spring对aop的实现
日后更新。事务管理器、通知、aop等()
mybatis 框架
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。
Mybatis 做了些什么?
Mybatis 是持久层框架,主要处理数据库的交互。
怎么搭建Mybatis 框架
逆向工程
逆向工厂根据 单表生成 po类,mapper,mapping 映射文件。
手动编写
po类、mapper、mapping文件。
根据dataBase 的映射关系编写实现对数据库的增、删、改、查等操作。
po类
主要包括 数据库中各个表(table)的基本映射类;
基本映射类的扩展类(如 ItemsCustom)
自定义pojo包装类(如 ItemsQueryVo)
mapper 映射接口
即 dao 层。此层主要包含对数据库的操作(接口)。
mapping 映射文件
这里主要包含了对数据库的具体操作
sqlSessionFactory
俗称session工厂,在mybatis中可以由 SqlSessionFactoryBuilder 创建。在spring容器中,可以由SqlSessionFactoryBean创建。
session 工厂的作用:
连接数据库,并扫描mybatis的配置文件和mapping 映射文件。
这里使用了一个Singleton 设计模式。
SqlSessinFactory 的目的是什么?
dataBase1 <-> sqlSession(S)
dataBase2 <-> sqlSession(S)
dataBaseN <-> sqlSession(S)
SSM框架 来自淘豆网m.daumloan.com转载请标明出处.