Spring spring

Spring中文网站 > Spring Security > Spring如何注入Bean Spring如何注入Java集合
Spring如何注入Bean Spring如何注入Java集合
发布时间:2026/03/25 11:28:05

品牌型号:联想ThinkPad X1

系统:Windows 10 家庭版

软件版本:Spring 5.3.7

在项目开发的时候,Spring框架中Bean的注入是贯穿整个框架及开发全程的基础操作。我们平时不仅仅是将普通的Bean、第三方组件Bean注入到容器中,还经常需要将一组同类型对象的集合也注入到容器中,例如我们要将多个策略类封装成List集合供业务层调用,或者是把配置项封装成Map实现灵活取值,而很多新手程序员在Spring中注入集合的时候经常犯难。那么在Spring中到底该如何规范的注入普通Bean?针对List、Set、Map等不同类型的Java集合,又该怎么注入呢?下面就给大家介绍Spring如何注入Bean,Spring如何注入Java集合的全部内容了。

一、Spring如何注入Bean

Spring的核心思想是IOC控制反转,将硬编码new对象的权利交给了Spring容器进行管理。在传统javaweb开发的时候,我们在Service代码中通过new Dao的方式创建了Dao对象,然后在service中调用dao对象。

硬编码方式创建对象
图1:硬编码方式创建对象

这样容易让代码耦合度飙升,并且一旦Dao层出现问题或者改动,Service层代码也会受到影响,不利于后期的维护。但是如果不将dao对象注入进来,在service中调用dao会出现NullPointerException空指针异常。

空指针异常
图2:空指针异常

Spring有个核心思想-DI依赖注入,可以通过setXxx方法或者构造方法注入dao对象,我们在service中创建dao对应的set方法,例如Dao类名叫UserDao,我们可以创建一个setUserDao方法。

创建set方法
图3:创建set方法

或者是给当前Service创建一个有参构造,参数是Dao的引用。

创建有参构造
图4:创建有参构造

然后找到applicationContext.xml配置文件中进行配置,如果是通过构造函数进行注入,使用constructor-arg。

使用constructor-arg
图5:使用constructor-arg

如果是通过set方法使用property进行配置。

使用property
图6:使用property

二、Spring如何注入Java集合

前面我们在介绍Spring依赖注入的时候,演示了下Spring如何注入一个对象,那么如果我们现在要在Dao中注入一个List集合怎么办呢?还是依赖注入的思想,我们先想到set注入或者是构造函数注入,我们这里就以set注入举例。我们这会要注入一个元素是String的List集合,我们先在代码中创建List类型的属性,然后针对这个属性创建set方法。

创建set方法
图7:创建set方法

然后我们去配置文件中,找到这个Bean,通过Property属性注入List,List中嵌套value标签,每个value标签中对应的是List中要注入的值。

Spring注入List集合
图8:Spring注入List集合

Set集合的注入方式跟List类似,这里就不再赘述,我们来讲下Map集合,在代码中,还是通过set方法实现注入,但是配置文件中,我们的property标签下是map标签,map标签里面嵌套了一个个Entry标签,具体代码实现请看图9。

Spring注入Map集合
图9:Spring注入Map集合

有时候我们可能要注入的不只是集合,还要注入例如Properties,一样,我们在代码中创建setProp方法。

创建setProp方法
图10:创建setProp方法

在配置文件中,我们在property标签中输入props标签,在props标签下嵌套prop,每个prop标签对应的就是properties中的一个个属性。

Spring注入properties
图11:Spring注入properties

以上就是Spring如何注入Bean,Spring如何注入Java集合的全部内容了。Spring的核心思想是IOC控制反转,将创建对象的权利交给了Spring容器,当我们需要注入bean的时候,可以考虑set方法进行注入也可以使用构造方法完成依赖注入。我们在注入集合的时候,可以给这个集合创建set方法,然后在配置文件中在property下通过list、set、map标签注入集合中的元素值。

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