使用手順を示します。
サンプルは samples/httpsession-xml にあります。
build.gradle に dependency を追加します。 (maven の場合は pom.xml に同様の設定を追加)
dependencies {
compile 'org.tmurakam:spring-session-ext-mongo:2.3.2'
}
HttpSession フィルタを有効にするための設定を行います。 Javaベースまたは XML ベースの設定のいずれかが必要です。
基本手順は Spring Session の Redis 設定に似ているので、 詳細は Spring Session のドキュメントを参照してください。
MongoDB に接続するための設定用 Java クラスを作成してください。 @EnableMongoHttpSession を必ず指定する必要があります。
@EnableMongoHttpSession
public class MongoConfig extends AbstractMongoClientConfiguration {
@Override
protected String getDatabaseName() {
return "mongoSession";
}
}
次に AbstractHttpSessionApplicationInitializer を継承した Initializer クラスを作成します。 コンストラクタ内から上記 Configuration クラスを指定してください。
public class Initializer extends AbstractHttpSessionApplicationInitializer {
public Initializer() {
super(MyMongoConfiguration.class);
}
}
MongoDB に接続するための設定用 Java クラスを作成してください。 これは上記 Java ベース設定と同じです。
次に Spring XML 設定ファイルを作成し、resources/spring ディレクトリに配置 してください。
<context:annotation-config/>
<!-- Your MongoDB configuration class -->
<bean class="com.example.MyMongoConfiguration"/>
この設定を読み込むための設定を WEB-INF/web.xml に追加します。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
最後に、springSessionRepositoryFilter を使用するためのフィルタ設定を web.xml に追加します。このフィルタは他のフィルタよりも前に配置する 必要があります。
<filter>
<filter-name>springSessionRepositoryFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSessionRepositoryFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>