Spring Session

Spring Boot は、さまざまなデータストア向けに Spring Session 自動構成機能を提供します。各データストアごとに、専用の Spring Boot スターターが提供されます。

サーブレット Web アプリケーションを構築する際、以下のストアを自動構成できます。

  • Redis (spring-boot-starter-session-data-redis)

  • JDBC (spring-boot-starter-session-jdbc)

サーブレットの自動構成により、@Enable*HttpSession を使用する必要がなくなります。

リアクティブ Web アプリケーションを構築する際、Redis ストアは spring-boot-starter-session-data-redis に依存することで自動構成できます。これにより、@EnableRedisWebSession を使用する必要がなくなります。

各ストアには特定の追加設定があります。たとえば、次の例に示すように、JDBC ストアのテーブルの名前をカスタマイズできます。

  • プロパティ

  • YAML

spring.session.jdbc.table-name=SESSIONS
spring:
  session:
    jdbc:
      table-name: "SESSIONS"

セッションのタイムアウトを設定するには、spring.session.timeout プロパティを使用できます。そのプロパティがサーブレット Web アプリケーションで設定されていない場合、自動構成は server.servlet.session.timeout の値にフォールバックします。

Spring Session の設定は、@Enable*HttpSession (サーブレット) または @EnableRedisWebSession (リアクティブ) を使用して制御できます。これにより、自動構成が無効になります。あるいは、Spring Session の Spring Boot のスターターを使用するのではなく、関連する Spring Session モジュールに直接依存することもできます。どちらの方法でも、Spring Session は、前述の設定プロパティではなく、アノテーションの属性を使用して設定できます。