@作者博客
Spring 两大特性
IOC控制反转
- IOC是什么?
-
IOC是一种思想,是一个重要的面向对象编程的体现之一
-
传统的应用程序是由我们在类的内部主动创建依赖对象,从而导致类与类之间高耦合,测试也繁琐. 相对于IOC而言,它是把创建和查找依赖对象的控制器交给了容器,有容器进行注入组合对象,所以对象与对象之间是,低耦合的,便于测试,而且也使得整个体系架构变得更灵活
-
IOC的面向对象思想就好像 ,百度百科上对这点描述是“不要给我们打电话,我们会给你打电话(don‘t call us, we‘ll call you)”这是著名的好莱坞原则;
其实说简单一点,就是对象找依赖并注入,而不是对象自己主动去找
-
- IOC依赖注入
- 在控制反转中获取资源的过程叫做依赖注入
- 构造器注入:
这种方式的注入是指带有参数的构造函数注入 在XML文件中 配置注入对象
- setter注入
* 要写被注入对象的Set方法 * 在XML中配置 ,要注入的具体对象(是由Spring管理的对象) * 在Spring的xml配置文件中,配置相关的Bean(也叫托管),由Spring来管理对象 * 也是在配置好 Bean 以后,由Spring自动注入
- 在控制反转中获取资源的过程叫做依赖注入
AOP面向切面编程
(可以说是,补全了OOP(面向对象编程)的不足的地方)
-
举个例子,日志功能,它往往是遍布在所有对象层中,而它又在核心功能中毫无关系,这种被散布在各处无关的代码 被称为横切,在oop设计中,它导致了大量代码的重复;
-
AOP技术却相反,它利用一种 叫 "横切"的技术,解剖开封装的对象内部,并将影响了多个类的公共行为封装到一个版块,这个版块叫 "Aspect(啊死拜)",又称切面.
-
切面,简单的说,就是那些与业务无关的,却又不可少的那一部分,封装起来,减少系统的重复代码,减低各个版块直接的耦合度,有利于维护和可操作性
-
AOP把软件系统分为两个部分:核心关注点和横切关注点
- 业务处理的主要流程是核心关注点
- 与之关系不大的部分是横切关注点
AOP核心概念
- 横切关注点
- 切面(aspect)
- 连接点(joinpoint)
- 切入点(pointcut)
- 通知(advice)
- 目标对象
- 织入(weave)
- 引入(introduction)
声明式事务管理
- 声明式事务管理建立在AOP之上的
-
其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务
-
声明式事务最大的优点就是不需要在代码中写管理事务的代码
只需在配置文件中声明和配置事物管理即可(或通过基于@Transactional注解的方式)
-
思维图如下:
网友评论