1.SSM框架和Redis概述
1.1 Spring框架
Spring框架的两种思想的目的:降低耦合
IoC (Inversion of Control) 控制反转
IoC 是一个容器: 管理Java Bean和这些Bean之间的关系,
Spring容器是通过 描述 来管理bean及其bean之间的依赖关系
是一种被动行为,Spring IoC容器会根据描述(配置信息)来找到使用者需要的资源
AOP(Aspect oriented Programming) 面向切面编程
A方法和B方法都需要对异常进行异常处理,方法操作时日志处理
public void a() {
try{
业务代码
日志处理
} catch() {
异常处理
}
}
public void b() {
try{
业务代码
日志处理
} catch() {
异常处理
}
}
// AOP 将系统级服务代码和主业务代码分离,需要降低这两种代码的耦合
// spring是一种非侵入框架
public void a() {
业务代码
}
1.2 Mybatis框架
Mybatis是一种持久层框架(数据访问层)
MyBatis和Hibernate框架的异同点
相同点:
都是持久层框架
都是ORM(Object Relational Mapping)映射框架
不同点:
Hibernate是完全面向对象,全自动ORM映射框架,不需要写任何SQL语句,只需要调用API,Hibernate其实也是可以写SQL语句,但是不建议写SQL语句。
MyBatis并不是完全面向对象,半自动ORM映射框架,需要写SQL语句,SQL可以优化
1.3 Spring MVC
Spring MVC 是Spring framework框架中web组件
Spring MVC 满足了MVC设计模式
1.4 SSM+Redis简图
2.设计模式
2.1 动态代理模式
代理: 生成一个代理对象,来代理真实对象,从而控制真实对象的访问
2.1.1 静态代理
在编译期需要程序员通过程序自定义代理类和创建代理对象
代码参考01_static_proxy
2.1.2动态代理
JDK动态(Dynamic)代理
javase提供了动态产生代理对象的API,JDK动态代理需要业务接口,在程序运行过程中动态产生代理对象