技術共有

Spring - Bean の自動配線

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

· オートワイヤリングは Spring が Bean の依存関係を満たす方法です

· Spring はコンテキスト内で自動的にそれを見つけ、Bean のプロパティを自動的にアセンブルします。


Spring での組み立て方法は 3 つあります。

1. XMLで設定を表示する

2. Javaで設定を表示する

3. Beanの暗黙的な自動配線【重要】


テスト

Cat、Dog、People クラスを忘れずに作成してください

  1. public class MyTest {
  2. @Test
  3. public void test1(){
  4. ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
  5. People people = context.getBean("people", People.class);
  6. people.getDog().shout();
  7. people.getCat().shout();
  8. }
  9. }

ByName の自動配線

  1. <!--
  2. byName:会自动在容器上下文中查找,和自己对象set方法后面的值对应的beanid
  3. -->
  4. <bean id="people" class="com.yang.pojo.People" autowire="byName">
  5. <property name="name" value="辰阳"/>
  6. </bean>

ByType 自動アセンブリ

  1. <bean class="com.yang.pojo.Cat"/>
  2. <bean class="com.yang.pojo.Dog"/>
  3. <!--
  4. byType:会自动在容器上下文中查找,和自己对象属性类型相同的bean(必须保证类型全局唯一,如有两个狗就会报错)(可以省略id)
  5. -->
  6. <bean id="people" class="com.yang.pojo.People" autowire="byType">
  7. <property name="name" value="辰阳"/>
  8. </bean>

まとめ:

·  名前により、すべての Bean の ID が一意であることを確認する必要があり、この Bean は、自動的に挿入される属性の set メソッドの値と一致している必要があります。

·  bytype を使用するには、すべての Bean のクラスが一意であること、および Bean が自動的に挿入される属性のタイプと一致していることを確認する必要があります。