Spring IOC 少

控制反转好处

 IOC:控制反转也叫依赖注入,IOC利用java反射机制,AOP利用代理模式。所谓控制反转是指,本来被调用者的实例是有调用者来创建的,这样的缺点是耦合性太强,IOC则是统一交给spring来管理创建,将对象交给容器管理,你只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些bean分配给你需要调用这些bean的类。 
AOP:面向切面编程。(Aspect-Oriented Programming) 
AOP可以说是对OOP的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码,属于静态代理

Java中6中技术控制反转

1.使用依赖注入策略 factory pattern 工厂模式,通过向工厂传入参数,返回具体的实例。

2.使用依赖注入策略中的service locator pattern服务定位器模式,将所有的服务访问都包装到对象中,对这些访问进行封装隔离,用一个类来实现统一的访问管理。

3.使用依赖注入策略中的constructor injection 构造注入,通过构造函数建立依赖关系,容器通过调用类的构造函数将依赖注入其中

4.使用依赖注入策略中的setter injection设值注入,使用最广泛,通过属性来表达自己所依赖的对象和所需的值(最常用)

5.使用依赖注入策略中的interface injection 接口注入,为了将调用者和实现者在编译期分离,我们动态加载实现类,并通过接口强制转型后使用。

1、每一个模块只专注于它自己的任务

2、每一个模块都假定自己与其他模块无关,无需操心其它模块是如何实现和做什么的

3、更换某个模块对其它模块无影响。

实现两种策略:

第一、依赖查找

第二、依赖注入(重点详细介绍)

我们一般使用第二种,因为它的耦合性更低。而且组件不会用到某个容器特定API,可以脱离容器使用。

 控制反转是通过依赖注入实现的。依赖注入是指容器负责创建对象和维护对象之间的依赖关系依赖注入的主要目的是解耦

原文地址:https://www.cnblogs.com/shan1393/p/9222450.html