1.什么是spring?
spring是一个轻量级的IOC和AOP容器框架,目的是用于简化企业应用程序开发,其中最主要的两个特性是IOC(控制反转)和AOP(面向切面)。
2.什么是IOC?
IOC(控制反转)是将对象的控制权限转移给spring管理,由spring框架来控制对象的生命周期和对象的依赖关系。
3.什么是AOP?
AOP(面向切面)是指将一些与业务无关,但对多个对象产生影响的公共行为和逻辑进行抽取封装,使这些模块可以重新使用,这个模块就叫做切面,减少系统中重复的代码,降低了模块之间的耦合度,提高系统的可维护性。
AOP的几个概念词:
连接点:指程序在运行中所执行的方法,Spring AOP中,一个连接点总代表一个方法。
切面:抽取出来的公共模块,可以用来回横切多个对象。
切点:定义用于要对哪些连接点进行截拦。
目标对象:包含连接点的对象,也被称为通知的对象。
通知:指要在连接点上执行的动作,即增强逻辑,对权限校验和日志的记录等。
引入:添加额外的方法或字段到被通知的类
织入:通过动态代理,在目标对象的方法(即连接点Join point)中执行增强逻辑的过程。
AOP的实现关键是通过代理模式,代理模式分为静态代理和动态代理,其中AOP代表动态代理。
通知的类型:
- 前置通知:在连接点之前的执行通知。
- 后置通知:在连接点退出的时候执行的通知。
- 环绕通知:包围一个连接点的通知,可以在方法的调用的前后完成自定义的行为。
- 返回后通知:指接入点正常完成后返回的通知。
- 有异常抛出后通知:在异常抛出退出时的通知。
Spring的优点:
- Spring属于低侵入式,代码的污染极低。
- Spring中DI的功能可以让对象之间的依赖关系转交给框架管理,减低组件的耦合性。
- Spring提供了AOP技术,支持将一些通知任务,日志等集中式管理,提高系统的复用性。
- Spring对主流的应用框架支持集成功能。