Spring spring

Spring中文网站 > Spring Authorization Serve > Spring依赖注入有什么用 Spring依赖注入有哪些实现方式
Spring依赖注入有什么用 Spring依赖注入有哪些实现方式
发布时间:2026/03/09 10:32:50

品牌型号:联想ThinkPad X1

系统:Windows10家庭版

软件版本:Spring 5.3.7

在使用Java做企业级应用开发的时候,Spring框架是一款经常被Java程序员使用的框架,因为它不仅可以降低了项目代码的耦合度还能简化开发流程,可以帮助开发者更高效地构建可维护的复杂系统。在传统Java Web开发中,对象间的依赖关系是通过硬编码new对象的方式实现的,这也导致模块间耦合度高、可扩展性差,给后期维护和迭代带来了很大的不便。下面就给大家介绍一下Spring依赖注入有什么用,Spring依赖注入有哪些实现方式的相关内容。

一、Spring依赖注入有什么用

我们使用IOC控制反转思想,将原来在程序中通过硬编码new对象的权力交给了Bean工厂来创建,例如,我们有Service和Dao创建对象的权力都交给了BeanFactory,但是,如果我们在Service层要调用Dao中的实例对象,该怎么操作呢?

什么是IOC控制反转
图1:什么是IOC控制反转

在Service层中,按照传统Web开发的方式,我们会在Service层中手动创建Dao的对象,但是这不符合IOC的思想,会导致Service和Dao的耦合度过高。可是如果不给Dao创建对象,在Service中调用Dao的时候,项目跑起来会出现空指针错误。

Spring依赖注入作用
图2:Spring依赖注入作用

既不想硬编码创建Dao的对象,又想运行的时候不报空指针,所以这里就不得不使用依赖注入,依赖注入的核心是为了解耦,让代码更灵活。

二、Spring依赖注入有哪些实现方式

想要实现Spring的依赖注入,可以通过set方法来完成依赖注入。

我们在Service层中添加Dao的set方法,例如有一个UserServiceImpl类和UserDaoImpl类,可以在UserServiceImpl中创建UserDaoImpl父接口的属性,为这个属性添加一个set方法”setUserDao“。

使用Set方法实现依赖注入
图3:使用Set方法实现依赖注入

如果只是这些还不行,还是会存在空指针,因为需要Spring容器往setUserDao方法里丢入一个UserDaoImpl的Bean。我们在applicationContext.xml中已经存在了UserService和UserDao的Bean了,可以在UserService中使用Property属性注入UserDao。

使用Property属性注入UserDao
图4:使用Property属性注入UserDao

也可以使用构造方法去完成依赖注入,在UserServiceImpl中创建UserDao的私有属性,并且手动给UserServiceImpl创建有参构造,构造中的形式参数是UserDao。

通过构造函数实现依赖注入
图5:通过构造函数实现依赖注入

我们要去applicationContext.xml中在UserServiceImpl的bean中,使用constructor-arg标签给这个构造函数注入UserDaoImpl的Bean。

使用constructor-arg属性注入UserDao
图6:使用constructor-arg属性注入UserDao

以上就是Spring依赖注入有什么用,Spring依赖注入有哪些实现方式的全部内容了。Spring的核心思想是依赖注入和AOP面向切面,降低代码的耦合度,如果在Bean中需要调用另外一个Bean对象,我们可以采取依赖注入的方式获取其它层的Bean对象,可以通过set的方式定义,然后在applicationContext.xml中使用property属性进行注入,也可以借助构造方法,然后在xml配置文件中使用constructor-arg进行注入。

读者也访问过这里:
180 1563 6924