概述
简化开发-四个基本策略
1、基于POJO的轻量级和最小侵入性编程
如:jdk需要实现一个接口,克隆模式需要实现clone接口
2、通过依赖注入和面向接口松耦合
Dq dq = new Dq();
dq.set(...)
3、基于切面和惯性进行声明式编程
声明式代码增强 如:package-scan="com.xxq.config“,默认扫描;显示配置
4、通过切面和模板减少样板式代码
jdbcTemplate
spring-编程思想
Spring思想 | 应用场景 | 一句话归纳 |
OOP | Object Oriented Programming(面向对象编程),即程序归纳生活一切事物 | 封装,继承,多态 |
BOP | Bean Oriented Programming 面向bean编程,解放程序员 | 一切从bean开始 |
AOP | Aspect Oriented Programming 面向切面编程,即面向规则编程,找出多个类中有一定规律的代码, 开发时拆开,运行时再合并。面向切面编程,即面向规则编程。 | 解耦,专人做专事 |
IOC | Inversion of Control(控制反转)将new对象的动作交给Spring管理,并由Spring保存已创建的对象(IOC容器) | 转交控制权 |
DI/DL | Dependency Injection(依赖注入),或者Dependency Lookup (依赖查找)依赖注入,依赖查找,Spring不仅 保存自己创建的对象,而且保存对象于对象之间的关系。注入即赋值,主要三种方式构造方式,set方法, 直接赋值。 | 自动赋值 |
OOP
面向对象编程 java提出
BOP
Service是bean,Dao是bean,Controller是bean,都是bean,任何东西都在bean里,包括容器本身也是bean;
AOP
开发拆开写,运行时合并
举个栗子#jdbc操作
- 前部分
- 加载驱动
- 获取数据库连接
- 获取语句集
- 中部分(钩子方法)
- 执行语句
- 获取结果集
- 分析结果集
- 尾部分
- 关闭数据库连接
ADao,BDao, CDao
如果每一个类都变成一个模板,就会有问题,我们应该要使用,合成复用原则,
能不使用继承,就不使用继承;
jdbcTemplate 不继承,改成注入;
注入之后,就能获取操作方法,但是,它前面获取数据连接,以及尾部分怎么操作,这个是多个dao层所共有的,而共有的逻辑,就是切面,在Spring扫描的时候,发现这个类需要处理,就通过代理模式实现一个切面逻辑,获取数据库连接,以及执行钩子方法,然后再实现切面的关闭数据库连接;
IOC
没有Spring以前,B b = new B(); 并且B类里面还有一个类A,还要先去new类B
有了Spring以后,Application.getBean(B.class);
DI
构造器赋值,set赋值,直接赋值
关系
BOP -> IOC
DI依赖于IOC,AOP依赖于IOC
图1-1
知识点图
栗子
于公元2021年7月9日20时50分记录