Spring框架的灵魂IOC和AOP
2017-11-30 00:00
204 查看
摘要: 自从有了IoC引用对象不用new了,有了AOP日志、事务、安全等问题可以在一个地方处理了。这些东西有个官方的叫法是依赖出入和面向切面编程,理论要恶补一下了。
spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分。
将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些bean分配给你需要调用这些bean的类(假设这个类名是A),分配的方法就是调用A的setter方法来注入,而不需要你在A里面new这些bean了。
将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。
一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;(被指方式)
二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码.(注解方式)
关键词 | 名称 | 模式 | 实现方式 |
IOC | 依赖注入或控制反转 | 工厂模式 | sessionfactory注入 |
AOP | 面向切面编程 | 代理模式 |
代理模式
代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。spring的IoC容器是spring的核心,spring AOP是spring框架的重要组成部分。
依赖注入和控制反转(Ioc)
在传统的程序设计中,当调用者需要被调用者的协助时,通常由调用者来创建被调用者的实例。但在spring里创建被调用者的工作不再由调用者来完成,因此控制反转(IoC);创建被调用者实例的工作通常由spring容器来完成,然后注入调用者,因此也被称为依赖注入(DI), 依赖注入和控制反转是同一个概念 。将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些bean分配给你需要调用这些bean的类(假设这个类名是A),分配的方法就是调用A的setter方法来注入,而不需要你在A里面new这些bean了。
面向切面编程(AOP:Aspect-Oriented Programming)
AOP可以说是对OOP(面向对象编程Object Oriented Programming)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。
AOP实现方式
实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;(被指方式)
二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码.(注解方式)
相关文章推荐
- Spring框架总结,控制反转(IOC),依赖注入(DI),面向切面编程(AOP)
- 深入浅出学习Spring框架(四):IoC和AOP的应用——事务配置
- Spring框架IOC容器和AOP解析
- Spring框架,个人笔记--IOC,DI,AOP
- spring框架的IOC和AOP机制模拟
- spring框架学习(八)—静态代理、JDK与CGLIB动态代理、AOP+IoC
- (精简)Spring框架的IoC(替代工厂类实现方法)和AOP(定义规则,约定大于配置)
- Spring框架的 IoC和AOP
- Spring框架原理(一)-- IOC与AOP
- Spring框架的两个重要概念IOC 和 AOP
- Spring框架的AOP/IOC/容器核心原理实例详解
- Spring框架IOC容器和AOP解析
- spring框架的ioc和aop通俗解释
- Spring框架IOC和AOP的实现原理
- Spring框架第二天(IOC和AOP)
- Spring框架IOC和AOP的实现原理与详解
- 自己实现的一个简易Spring框架(IoC+AOP)
- Spring框架IOC和AOP的理解
- (精简)Spring框架的IoC(替代工厂类实现方法)和AOP(定义规则,约定大于配置)
- Spring框架IOC与AOP简单应用浅解-适合初入SSH框架学习