JavaのWebアプリケーション開発フレームワークによる、Webサイト開発の顛末記です。

EclipseのMavenを使った、Spring-MVC、Thymeleaf、MyBatis 等のプログラミングテクニックを、
備忘録的に記録しています。実際に動くソースコードを多用して説明していますので、
これからEclipseや、Spring-MVCを始めたいと思っている人にとって、少しでも参考になれば幸いです。
Spring-MVCの散歩道 > SpringMVC の小径 > 第4歩 Spring-MVCの初期設定 > Spring-MVC設定

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?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:aop="http://www.springframework.org/schema/aop"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://mybatis.org/schema/mybatis-spring
        http://mybatis.org/schema/mybatis-spring.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        ">

    <!-- @Controllerなどのアノテーションを有効にするためのおまじない -->
    <!--  //@RestControllerを使わなければこちらで問題ない
    <mvc:annotation-driven />
    -->
    <!--  //@RestController 406エラー対策 -->
    <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager"/>
    <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
        <!-- Turn off working out content type based on URL file extension, should fall back to looking at the Accept headers -->
        <property name="favorPathExtension" value="false" />
        <property name="ignoreAcceptHeader" value="false" />
    </bean>

    <!-- @Autowiredステレオタイプアノテーションを有効にするためのおまじない -->
    <!-- enable autowire -->
    <context:annotation-config />
    <!-- コンポーネントスキャンのおまじない -->
    <context:component-scan base-package="jp.dip.arimodoki.cntl"/>
    <context:component-scan base-package="jp.dip.arimodoki.blogic"/>
    <context:component-scan base-package="jp.dip.arimodoki.model"/>
    <context:component-scan base-package="jp.dip.arimodoki.mapper"/>
    <context:component-scan base-package="jp.dip.arimodoki.common"/>

    <!--AspectJ 使用宣言 -->
     <aop:aspectj-autoproxy />

    <!-- Validatorメッセージリソースファイル -->
    <bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basename" value="classpath:/ValidationMessages" />
    </bean>

    <!--
        //////////////////////////////////////////////////
        // ここからは、 thymeleafを使用するための定義
        //////////////////////////////////////////////////
     -->
    <!-- Thymeleaf テンプレートリゾルバの設定 -->
    <bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
<!--  //2.x系はこちらでも動く
    <bean id="templateResolver" class="org.thymeleaf.templateresolver.ServletContextTemplateResolver">
-->
        <!-- テンプレートファイルのrootパス(ここでは、/WebContent直下となる)-->
        <property name="prefix" value="/" />
        <!-- テンプレートファイルの拡張子(jspでも良いが単体でブラウザに表示できる便利さから htmlを採用する) -->
        <property name="suffix" value=".html" />
        <!-- DocType はHTML5 決まりごと(HTML4では動きません!) -->
        <property name="templateMode" value="HTML5" />
        <property name="cacheable" value="false" />
    </bean>

    <!-- Thymeleafテンプレートエンジンの設定 -->
    <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine">
        <!-- 上で定義した templateResolverに依存する -->
        <property name="templateResolver" ref="templateResolver" />
    </bean>

    <!-- Thymeleaf View Resolverの設定 -->
    <bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
        <!-- 上で定義したtemplateEngineに依存する -->
        <property name="templateEngine" ref="templateEngine" />
        <!-- 文字エンコードを指定(無いと、文字化けが発生する) -->
        <property name="characterEncoding" value="UTF-8" />
    </bean>

</beans>