Spring中的Ioc、DI讲解

柔光的暖阳◎ 2022-02-19 08:36 295阅读 0赞
  1. Spring是一款轻量级的IOC框架,Spring的核心就是IocDI,并通过他们来解耦,

那么,Ioc、DI到底是什么?

Ioc 控制反转
  1. Ioc(Inversion of control)控制反转,这里的控制 指把控制权从应用程序中剥离出来。ioc它可以把创建对象和查找依赖对象的权限交给Ioc容器控制,而不是传统的由这些对象的使用方(消费者)进行创建初始化操作。IoC是一种让服务消费者不直接依赖于服务提供者的组件设计方式,是一种减少类与类之间依赖的设计原则。

为什么Ioc叫控制反转呢,反转了什么呢?传统的程序都是消费者主动创建对象,现在容器帮我们查找及注入依赖对象,而消费者只是被动的接受依赖对象,此为反转。

DI 依赖注入
  1. DIDependency Injection)依赖注入,指容器复制创建和维护对象之间的依赖关系,而不是通过对象本身复制自己的创建和解决自己的依赖。控制反转是通过依赖注入实现的。

其实Ioc和DI在Spring中是一个等同的概念。如果非要咬文嚼字的话,控制反转是依赖注入的一部分,或者说是同一个行为偏重点不同的俩个称呼。

他们是从不能的角度阐述同一个功能,描述的对象不同而已。依赖注入是从程序本身来说,控制反转是从容器来说的。

Spring的实现
  1. Spring Ioc容器(ApplicationContext)负责创建Bean,并通过容器将这些创建的Bean注入到需要他们的消费者Bean中。Spring提供使用Xml、注解ava配置的方式创建和注入,容器解析这些配置信息进行Bean的初始化,配置和依赖管理。

申明Beand的注解
@Comonet 没有明确声明角色的功能
@Service 在业务逻辑层使用
@Repository 在数据操作层使用
@Controller 在表现层(SpringMvc中)使用,其中RestControlelr也是一样的含义
以上四个注解在功能是是相同的,他们唯一的区别只是从字面上了区分申明的Bean的功能。

注入Bean的注解
@Autowired
@Injet
@Resource
以上三个注解的功能也是一样的,其中@Autowired是Spring提供的

发表评论

表情:
评论列表 (有 0 条评论,295人围观)

还没有评论,来说两句吧...

相关阅读