Spring如何在XML文件中指定Bean之间的引用关系

Spring是一个IOC(DI)的容器框架 , 一个典型的Spring项目需要创建一个或多个Bean , 这些Bean的配置信息都在配置文件中 , Bean的配置文件可以放在classpath下 , 也可以放在其他目录下 。 下面我们讲解如何在配置文件中指定两个Bean之间的依赖关系 , 创建两个类Cat和Person , Person类中的一个属性为Cat类型 , 如下图所示 。 工具/材料 Spring Tool Suite 3.9.1.RELEASE
操作方法 01 我们在创建的Cat类中定义4个属性 , 并且创建Cat类的无参构造、有参构造、getter和setter方法 , 重写toString()方法 。 创建Person类 , 同样创建getter和setter方法 , 重写toString()方法 。 我们为Cat类创建一个bean , id为cat2 , bean的创建方式沿用上文 , 不明白的朋友可以查看小编之前的文章 。 接下来创建Person类的bean , 使用属性注入的方法添加属性 , 可以使用property的ref属性建立bean之间的引用关系 , 如下图所示 。 我们在运行结果中可以看出打印Person类的对象时 , 输出的信息有cat的值 。

Spring如何在XML文件中指定Bean之间的引用关系

文章插图

Spring如何在XML文件中指定Bean之间的引用关系

文章插图

02 组成应用程序的bean经常需要相互协作完成应用程序的功能 , 要使bean能够相互访问 , 就必须在bean配置文件中指定对bean的引用 。 我们也可以使用property的<ref>元素来设置bean之间的引用 , 如下图所示 。

Spring如何在XML文件中指定Bean之间的引用关系

文章插图

03 我们也可以在属性或构造器里包含bean的声明 , 这样的bean称为内部bean,可以不定义id , 不能被外部引用 。 当bean实例仅仅给一个特定的属性使用时 , 可以将其声明为内部bean , 内部bean声明直接包含在<property>或<constructor-arg>元素里 , 不需要设置任何id或name属性 , 如下图所示 。

Spring如何在XML文件中指定Bean之间的引用关系

文章插图

04 上述步骤介绍的为使用属性注入的方式引入外部bean , 下面介绍使用构造器注入的方式引入外部bean , 用法大体上是相同的 , 都是使用ref属性 , 我们先为Person类增加有参构造 , 并且再创建一个无参构造 , 使用构造器注入的结果如下图所示 。

Spring如何在XML文件中指定Bean之间的引用关系

文章插图

Spring如何在XML文件中指定Bean之间的引用关系

文章插图

Spring如何在XML文件中指定Bean之间的引用关系

文章插图

05 我们将Person类全部属性均使用构造器注入 , 均在<constructor-arg>元素里添加属性值即可 , 结果如下图所示 。

Spring如何在XML文件中指定Bean之间的引用关系

文章插图

Spring如何在XML文件中指定Bean之间的引用关系

文章插图

06 下面介绍如何在为bean的属性注入null值 , 可以使用<null/>元素标签为bean的字符串或其它对象类型的属性注入null值 。 如下图所示 , 我们不需要给Person类的对象注入一个Cat类对象这个属性 , 因此使用<null/>元素表示 , 如下图所示 。

推荐阅读