反転制御ばね2.xの(IOC)

  制御の反転は、名前は白が財産内部のJava Beanが注入手順の内部で生成されるのではなく、これは実際にはSpring XML構成ファイルによって、いわゆる依存性注入に注入されていることを言って、今度は、示唆して制御することです。以下のコードを考えてみましょう

public class KnightOfTheRoundTable implements Knight {
  private String name;
  private Quest quest;
  
  public KnightOfTheRoundTable(String name) {
    this.name = name;
  }
  
  public Object embarkOnQuest() throws QuestFailedException {
    return quest.embark();
  }
  
  public void setQuest(Quest quest) {
    this.quest = quest;
  }
  
  public String getName() {
    return name;
  }
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
  <bean id="quest"
      class="com.springinaction.chapter01.knight.HolyGrailQuest"/>

  <bean id="knightTarget"
      class="com.springinaction.chapter01.knight.KnightOfTheRoundTable">
    <property name="name" value="hello"/>
    <property name="quest">
      <ref bean="quest"/>
    </property>
  </bean>
</beans>
public class KnightApp {
  public static void main(String[] args) throws Exception {

  工場// =たBeanFactory BeanをロードするためのたBeanFactoryは、実際には春のコンテナ
  新しい新しいXmlBeanFactoryに(FileSystemResource新新(「knight.xmlを」));


    Knight knight =
        (Knight) ctx.getBean("knight");

    knight.embarkOnQuest();
  }
}

  上記のXML属性は、IDは、BeanクラスknightTargetにその位置を示し、プロパティ属性を指し、完全な組立プロセスを与えます。<プロパティ名=「名前」値=「こんにちは」/>これは、クラスではなく、単純な文字列であるため、Bean名「名前」属性値注入「hello」を、そして次のプロパティが存在することを意味そう、「クエスト」にプロパティを与える豆の中に注入され、それは豆の開始定義名「クエスト」の前にあります

  

  

ます。https://my.oschina.net/secyaher/blog/274432で再現

おすすめ

転載: blog.csdn.net/weixin_34082789/article/details/91967033