IOC概念:
1:IOC控制反转
控制反转就是对,对象控制权的转移,从程序代码本身反转到外部容器。。把对象的创建,初始化,销毁等工作交给Spring容器开做,有Spring容器控制对象的生命周期
2:依赖注入(Dependency Injection)
依赖出入DI是指程序运行过程中,若需要调用一个对象协助时。无需在代码中创建调用者,而是依赖于外部容器,有外部容器创建后传递给程序。依赖注入的目前最优秀的解耦方式,依赖注入让Spring的Bean之间以配置文件的方式组织在一起,而不是以硬编码的方式耦合在一起。
3:IOC与DI的关系
IOC是一个概念,是一种方式器实现方式有很多样。当前比较流行的实现方式就是DI
IOC :控制反转讲new的过程交给Spring容器去处理
AOP介绍:
AOP(Aspect Oriented Programming),面向切面编程,就是oop(Object Oriented Programming,面向对象编程)的补充和完善 面向切面是面向对象的一种方式,在代码执行过程中,动态的嵌入其他代码,叫做面向切面编程,常见的场景有 1:日志 2:事物 3:数据库操作 面向切面的几个核心概念概念 | 说明 |
---|---|
IOC/DI | 本质就是java反射+XML解析 |
AOP | 本质上java动态代理 |
切点 | 要添加代码的地方成为切点 |
切面 | 切点+通知 |
通知(增强) | 向切点插入的代码通知Advice |
连接点 | 切点的定义 |
AOP的实现方式
介绍:
切面就是面向切面编程,就是讲交叉业务逻辑封装成切面,利用AOP的功能将切面植入到主业务逻辑中,交叉业务逻辑是指,通过的与主业务编辑无关的改吗,如安全检查,事物日志等。若不使用AOP,则会出现代码交缠,几交叉业务与主业务逻辑代码混合在一起,这样,会使主业务逻辑变得混杂不清
AOP术语介绍
术语 | 说明 |
---|---|
切面 | 切面泛指交叉业务逻辑,例如事物处理,日志处理可以理解为切面,常用的切面有通知与顾问,实际是对业务逻辑的一种增强 |
植入 | 植入是指将切面代码插入到目标对象中的过程 |
连接点 | 切面可以植入的位置 |
切入点 | 切入点只切面具体植入位置 |
通知(Advice) | 通知是切面的一种实现,可以完成简单植入功能(植入功能就是在这里完成的),通知定义了增强代码切入到目标的时间点,在目标方法执行之前执行,还是之后执行,通知类型不同,切入时间也不同 |
顾问(Advisor) | 顾问是切面的另一种实现,就是将通知更改为复杂的方式植入发哦目标对象中,是将通知包装为更复杂切面的装配器,不仅指定了切入的时间点,还可以指定具体的切入点 |