[Spring]HelloWorldアプリケーションの作成(2)


Springフレームワークを使用して、以前に作成したアプリケーションを再設計し、SpringがMessageReaderに直接メッセージプロバイダを提供するようにしましょう.
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class HelloWorldSpringDI {
	public static void main(String[] args) {
    	ApplicationContext ctx = new ClassPathXmlApplicationContext("spring/app-context.xml");
        MessageRenderer mr = ctx.getBean("renderer", MessageRenderer.class);
        mr.render();
    }
}
アプリケーションContextタイプのClassPathXmlApplicationContextインスタンスを作成し、getBean()メソッドを使用してxmlファイルを読み込み、MessageRenderインスタンスをインポートします.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:p="http://www.springframework.org.schema/p"
      xsi:schemaLocation="http://www.springframework.org/schema/beans 
                          http://www.springframework.org/schema/beans/spring-beans.xsd">

<bean id="provider"
      class="com.example.Spring.HelloWorldMessageProvider"/>

<bean id="renderer"
      class="com.example.Spring.StandardOutMessageRenderer"
      p:messageProvider-ref="provider"/>

</beans>
上のxmlファイルにはjavabeanが2つあります.idがプレゼンテーションの部分である場合、pビューはプロバイダの空をmessageProviderに注入することがわかります.プログラムを実行するとspringはapp-contextを実行します.xmlを読み込んでプロバイダとプレゼンテーションの空を作成し、プレゼンテーションの空を作成するときにMessageProviderパラメータにプロバイダの空を注入します.そしてrender()メソッドを実行し、結果はHelloWorld!コンソールに出力します.