- アノテーションで記述出来るようにするため、★の行と▼から▲までを追加。
- (*1)の部分にはパッケージ名を指定する。指定したパッケージ配下でアノテーションが有効になる。
- (*2)の部分には任意のプロパティファイル指定する。
- プロパティファイルが複数あるなら、<value>タグを増やして追加。
<?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd ★ http://www.springframework.org/schema/context ★ http://www.springframework.org/schema/context/spring-context-3.0.xsd "> <!-- 省略 --> <!-- ▼ここから --> <!-- アノテーションを有効にする --> <context:component-scan base-package="jp.holenews.w2u (*1)"/> <!-- プロパティファイルを認識させる --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:config.properties (*2)</value> </list> </property> </bean> <!-- ▲ここまで --> <!-- 省略 --> </beans>
- テスト用サーブレットを登録しておく。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <!-- 省略 --> <!-- ▼テスト用サーブレット --> <servlet> <servlet-name>TestServlet</servlet-name> <servlet-class>jp.holenews.w2u.test.TestServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>TestServlet</servlet-name> <url-pattern>/TestServlet</url-pattern> </servlet-mapping> <!-- ▲テスト用サーブレット --> </web-app>
package jp.holenews.w2u.test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.*; /** * @ComponentをつけておけばSpringコンテナに管理される。 */ @Component public class TestController { /** * 「@Autowired」にしておけば型が一致するものを探してインジェクションしてくれる */ @Autowired private TestDIBean testDIBean; // 以下、testDIBeanのgetter, setter }
package jp.holenews.w2u.test; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.*; /** * @ComponentをつけておけばSpringコンテナに管理される。 */ @Component public class TestDIBean { // @Valueにプロパティファイルのキーを指定すると値が取れる。 // 「20」の値が取れるはず。 @Value("${hoge.num}") private int number; // 上に同じ。「にゃーん」が取れるはず。 @Value("${hoge.str}") private String str; // 以下、numberとstrのgetter, setter }
package jp.holenews.w2u.test; import java.io.*; import javax.servlet.ServletException; import javax.servlet.http.*; import org.springframework.context.ApplicationContext; import org.springframework.web.context.ContextLoaderListener; /** * テスト用サーブレット */ public class TestServlet extends HttpServlet { /** * ※doGet以外は省略 */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // アプリケーションコンテキストの取得 ApplicationContext contxt = ContextLoaderListener.getCurrentWebApplicationContext(); // Beanの取得。getBeanの引数には頭を小文字にしたクラス名を指定。 TestController target = (TestController)contxt.getBean("testController"); // さらにTestControllerにインジェクションしたTestDIBeanを取得 TestDIBean bean = target.getTestDIBean(); // TestDIBeanに設定したプロパティファイルの値を取得 int i = bean.getNumber(); String str = bean.getStr(); // 結果を出力 response.setContentType("text/html; charset=UTF-8"); PrintWriter w = response.getWriter(); w.println(str); w.println(i); } }
このページへのコメント
JaL6eI I appreciate you sharing this blog.Really thank you! Awesome.
cGqXux <a href="http://yorlfrcbbdoj.com/">yorlfrcbbdoj</a>, [url=http://syctwacpfqlx.com/]syctwacpfqlx[/url], [link=http://xbpevblreafz.com/]xbpevblreafz[/link], http://ejqqmtdxmplk.com/