1>控制反转:组件对象的控制权从代码本身转移到外部容器。
理解:将new对象的工作交给外部容器,不需要关注外部引用,本类只需要定义好属性及setter方法
好处:降低代码耦合度,也是Spring框架的核心要素
2>面向切面编程:不改变原程序的基础上为代码增加新的功能,对代码进行增强处理
理解:将复杂的功能分解出不同方面,将散布在系统各处的公共功能集中解决。在Spring的配置文件中管理、连接、执行
好处:增加代码的可扩展性和可维护性
切面:与业务无关又不得不处理的代码。(打印日志、异常处理等)
连接点:要处理的具体方法
切入点:对连接点的特征进行描述,匹配上就把增强处理在对应的连接点上执行
增强处理:在某个连接点上执行的代码逻辑
连接点:
定义:连接点是一个应用执行过程中能够插入一个切面的点。
连接点可以是调用方法时、抛出异常时、甚至修改字段时,切面代码可以利用这些点插入到应用的正规流程中 程序执行过程中能够应用通知的所有点。
切点:
定义:如果通知定义了“什么”和“何时”。那么切点就定义了“何处”。切点会匹配通知所要织入的一个或者多个连接点。通常使用明确的类或者方法来指定这些切点。
作用:定义通知被应用的位置(在哪些连接点)
切面:
定义:切面是通知和切点的集合,通知和切点共同定义了切面的全部功能——它是什么,在何时何处完成其功能。
引入:
引入允许我们向现有的类中添加方法或属性
织入:
织入是将切面应用到目标对象来创建的代理对象过程。
切面在指定的连接点被织入到目标对象中,在目标对象的生命周期中有多个点可以织入