Springを使ってみるメモ

簡単なサンプルを動かそうとするだけで結構はまったのでメモ。


前提とか事前準備:


手順:

  • Help -> Install New Software
  • spring-framework-2.5.6.SEC01-with-dependenciesをプロジェクト化
    • Eclipse上でアクセスしやすいので
    • "New -> Java Project" から "Create project from existing source" で事前にどっかに展開しておいた spring-framework-2.5.6.SEC01-with-dependencies を選択
    • # 鬱陶しいので "Build automatically" は Off にしている
  • Serverの追加
    • "New -> Other -> Server" から適当なもの(今回はTomcat6)を
    • SpringSource dm Server とかも使える?
  • 新規プロジェクト(非Webアプリの場合)
    • "New -> Project -> Spring Project"
    • libとか適当にディレクトリを作って、spring-frameworkプロジェクトからspring.jar, commons-logging.jarをコピって置く. そして "Build Path -> Add JARs" とかで追加しておく
    • CLASSPATHの通ったところに "New -> Other -> Spring Bean Configuration File" を追加して、必要に応じて編集
    • Beanを取り出すコードはこんな感じ
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.*;

  :

  Resource res = new ClassPathResource("applicationContext.xml");
  BeanFactory factory = new XmlBeanFactory(res);
  User komamitsu = (User)factory.getBean("komamitsu");
  • 新規プロジェクト(Webアプリの場合)
    • "New -> Project -> Dynamic Web Project"
    • 追加されたProjectを右クリックして "Spring Tools -> Add Spring Project Nature"
    • /WebContent/WEB-INF/libに、spring-frameworkプロジェクトからspring.jar, commons-logging.jarをコピって置く
    • /WEB-INF/applicationContext.xmlにそれらしくDI設定を書く
    • web.xmlに以下を追記
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<param-value>/WEB-INF/applicationContext.xml</param-value>
  </context-param>
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
    • ServletからBeanを取り出す場合は以下のような感じで
  WebApplicationContext wac =
    WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext());
  User komamitsu = (User)wac.getBean("komamitsu");