MyBatis:
#MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生Map使用简单的 XML 或注解,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
一、MyBatis框架的优点:
-
与JDBC相比,减少了50%以上的代码量。
-
MyBatis是最简单的持久化框架,小巧并且简单易学。
-
MyBatis相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,并可重用。
-
提供XML标签,支持编写动态SQL语句。
-
提供映射标签,支持对象与数据库的ORM字段关系映射。
二、MyBatis框架的缺点:
-
SQL语句的编写工作量较大,尤其是字段多、关联表多时,更是如此,对开发人员编写SQL语句的功底有一定要求。
-
SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。
Spring:
Spring-AOP 代理,增强
额外功能+目标类 = 代理类
比如:日志处理/事务处理/异常处理/性能分析…
- 通过spring AOP的代理功能,给代码增加额外的通用功能
- 业务逻辑就专心的处理实际需求,通用的增强功能独立出来
- 代理的专业术语
额外功能叫 增加
目标类叫 切入点 或 切面
将增强 加入到 切入点,叫编织
AOP是面向切面编程的一种实现
AOP步骤:
-
导包
-
书写一个增强类(前置为例)
-
配置增强类的bean
-
配置AOP的编织功能 写接口的包路径
1: 通配接口或者普通方法
2: 包名
3: 类名
4: 方法名
5: 参数
增强方式4种:
-
前置增强,在核心功能之前执行的额外功能
-
后置增强,在核心功能之后执行的额外功能
-
异常增强,在核心功能发生异常时执行的额外功能
-
环绕增强,在核心功能之前以及之后执行的额外功能
AOP实例 – 环绕增强日志记录
需求:记录商品的service层的日志操作,到数据库
-
创建商品日志记录表 Product_Log
-
完成日志记录表的插入逻辑
-
环绕增强搜集日志记录参数,并测试
-
环绕增强调用日志记录表的插入逻辑,完成日志记录功能
注意:需要采用Spring IOC 模式,加载bean
AOP注解
可以灵活的定义哪个具体的方法实现增强功能
-
写一个软接口
-
增强类照常写
-
修改切入点