Spring之IOC,AOP的理解

IOC

IOC的的英文全拼为Inversion of Control 中文意思为控制反转 ,同时IOC不是技术 而是一种思想同时也是对工厂模式的升华;

控制反转

控制:控制即由容器来控制对象的创建,控制外部资源的获取

反转:

在传统的JavaSE开发中 我们都是在对象的内部用New关键字来获取依赖对象,而这种主动在对象中获取依赖对象的方式叫做正转,

而IOC是有一个专门的容器,来创建注入这些依赖对象,这种由IOC容器来控制对象的创建 被动接受被IOC容器注入ed创建对象的方式 即为反转

IOC是一个重要的面向对象的编程法则 IOC是工厂模式的升华, 首先工厂模式 可以把它看做消费者类 产品类 工厂类 当消费者需要某个产品(对象)时 可以直接想工厂获取, 消费者类不需要做出任何的改变即可接受新的产品,但如果产品类做出了修改时 那么工厂也要做出相应的改变,而IOC的底层是通过反射来实现,

反射的机制可以为我们:

动态的获取:

类的信息(类的父类接口,修饰符)  

方法的修饰符 返回值 方法名形参列表 方法抛出的异常 ,

属性的 修饰符 类型 属性名 属性值

所以我们在IOC里可以不做任何的修改 即使用反射的特性机制去动态注入对象

而IOC在Spring里实现的就是DI依赖注入 也就是说 对象之间的依赖关系 是在后期 通过配置文件生成 Spring里实现了两种注入方式 : 1. 构造方法注入,  2. Setter方法注入,      

可以这样理解这种技术带来的好处: 前期只需要关注单个对象组件的功能实现 具体的业务实现是通过后期的配置出来的 不同的配置可以产生不同的业务功能  

AOP 

AOP 大大降低了对象之间的耦合度 

AOP是面向切面编程 可以进行解业务逻辑和系统服务的藕合, 可以动态的为对象增加新的特性 甚至能够为对象动态增加方法 在Spring中的AOP实现不需要特定的AOP定义语言 只需要普通的Java对象和XML配置文件即可

Springboot 配置切面需要引入AOP相关依赖

      <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>        

猜你喜欢

转载自blog.csdn.net/weixin_42059737/article/details/87863435