zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Spring Beans 自动装配

Spring自动 装配 beans
2023-09-14 09:03:08 时间

Spring 容器可以在不使用和 元素的情况下自动装配相互协作的 bean 之间的关系,这有助于减少编写一个大的基于 Spring 的应用程序的 XML 配置的数量。

By Name

使用By Name进行自动装配,beans.xml如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

   <!-- Definition for textEditor bean -->
   <bean id="textEditor" class="com.tutorialspoint.TextEditor" 
      autowire="byName">
      <property name="name" value="Generic Text Editor" />
   </bean>

   <!-- Definition for spellChecker bean -->
   <bean id="spellChecker" class="com.tutorialspoint.SpellChecker">
   </bean>

</beans>

在配置文件中,如果一个 bean 定义设置为自动装配 byName,并且它包含 spellChecker 属性(即,它有一个 setSpellChecker(…) 方法),那么 Spring 就会查找ID为 spellChecker 的 bean,(叫byID更准确点)并且用它来设置这个属性。仍然可以使用 标签连接其余的属性。

输出:

如果把beans.xml的SpellChecker的ID改为SpellChecker2,则运行时会报NullPointerException:

如果非要将就beans.xml里的spellChecker2, 则TextEditor类里所有出现spellChecker的地方,都要改成spellChecker2才能正常工作。只改成员变量名不行。

要获取更多Jerry的原创文章,请关注公众号"汪子熙":