1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 什么是DI(依赖注入) 依赖注入的原理

什么是DI(依赖注入) 依赖注入的原理

时间:2024-04-26 08:25:10

相关推荐

什么是DI(依赖注入) 依赖注入的原理

这篇文章主要介绍了Spring当中的依赖注入(DI),以及他能注入的数据类型,和他的简单原理,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

什么是依赖注入?

Dependency Injection。它是 spring 框架核心 ioc 的具体实现。

我们的程序在编写时,通过控制反转,把对象的创建交给了 spring,但是代码中不可能出现没有依赖的情况。ioc 解耦只是降低他们的依赖关系,但不会消除。例如:我们的业务层仍会调用持久层的方法。

那这种业务层和持久层的依赖关系,在使用 spring 之后,就让 spring 来维护了。

简单的说,就是坐等框架把持久层对象传入业务层,而不用我们自己去获取。

依赖注入的原理

所谓依赖注入,即在运行期由容器将依赖关系注入到组件之中。

讲的通俗点,就是在运行期,由Spring根据配置文件,将其他对象的引用通过组件的提供的setter方法进行设定。

Spring 大量引入了Java 的Reflection机制,通过动态调用的方式避免硬编码方式的约束,并在此基础上建立了其核心组件BeanFactory,以此作为其依赖注入机制的实现基础。

代码理解:

Class cls = Class.forName("net.xiaxin.beans.User"); Method mtd = cls.getMethod("setName",new Class[]{String.class}); Object obj = (Object)cls.newInstance(); mtd.invoke(obj,new Object[]{"Erica"}); return obj;

Object obj = Class.forName("net.xiaxin.beans.User").newInstance(); BeanWrapper bw = new BeanWrapperImpl(obj); bw.setPropertyValue("name", "Erica"); System.out.println("User name=>"+bw.getPropertyValue("name"));

数据类型

能注入的数据类型:有三类

基本类型和String

其他bean类型(在配置文件中或者注解配置过的bean)

复杂类型/集合类型

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。