【SpringMVC】設定ファイルその2

  • src/main/webapp/WEB-INF/spring/root-context.xml
    アプリケーションの共通設定として、
    ファンクション層(F層:Service)、データ層(D層:Dao)の定義を行う。

    • 「@Autowire」「@Component」「@Service」のアノテーションを有効にする設定

      <context:annotation-config />
      
    • アノテーションでScan対象とするパッケージを指定

      <context:component-scan base-package="jp.co.sample.service" />
      <context:component-scan base-package="jp.co.sample.dao" />
      

      上記パッケージにJavaファイルを配置すると、
      JavaファイルにSpringの管理を示す「S」マークがつきます。

      このファイルは共通設定なので、パッケージにcontrollerが
      格納されている場所を指定すれば「@Controller」も利用可能ですが、
      SpringMVCの考え方として、通常は「@Controller」が属するパッケージは
      後述のservlet-context.xmlに定義します。

    • 共通設定

      <beans:bean id="commonProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <beans:property name="locations" value="classpath:common.properties" />
      </beans:bean>
      

      上記記述を行うことでJavaファイル内でcommon.propertiesに
      「commonProperties」という名前でアクセスできるようになります。

      @Autowired
      private Properties commonProperties;
      
  • src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml
    プレゼンテーション層(P層:Controller)の定義を行う

    • 「@Controller」のアノテーションを有効にする設定

      <annotation-driven />
      
    • アノテーションでScan対象とするパッケージを指定

      <context:component-scan base-package="jp.co.sample.controller" />
      

      上記パッケージにJavaファイルを配置すると、
      JavaファイルにSpringの管理を示す「S」マークがつきます。

    • 静的ファイルにHTTP GETリクエストが来た場合の動作定義

      <resources mapping="/resources/**" location="/resources/" />
      
    • コントローラーの処理終了後に呼び出される画面用ファイルの指定

      <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <beans:property name="prefix" value="/WEB-INF/views/" />
        <beans:property name="suffix" value=".jsp" />
      </beans:bean>