Springboot-session

5035 ワード

application.properites構成


session store typeはsessionを格納するための格納方式を使用しており、現在Spring bootではRedis方式のみがサポートされている.本アプリケーションは、セッションをredisに入れる必要がないため、ここではセッションstore typeをnoneに設定することができる.
ここではこの構成情報をアプリケーションに格納する.properites:
 # default-store in spring session. it will be set in redis only outside.
spring.session.store-type=none

補足:pom.xml
  
        <dependency>
            <groupId>org.springframework.sessiongroupId>
            <artifactId>spring-sessionartifactId>
        dependency>

再起動、成功.

セッション有効時間設定:

//             :
//  session    
    @Bean
    public EmbeddedServletContainerCustomizer containerCustomizer(){
        return new EmbeddedServletContainerCustomizer() {
            @Override
            public void customize(ConfigurableEmbeddedServletContainer container) {
                container.setSessionTimeout(1800);//   S
            }
        };
    }

redisストレージセッションを使用するには:


1. pom.xml設定

       
        <dependency>
            <groupId>org.springframework.sessiongroupId>
            <artifactId>spring-sessionartifactId>
        dependency>

2. application.properties構成

#session     redis
spring.session.store-type=redis
#redis  :
spring.redis.database=0
spring.redis.host=localhost
spring.redis.password=
spring.redis.pool.max-active=8
spring.redis.pool.max-idle=8
spring.redis.pool.max-wait=-1
spring.redis.pool.min-idle=0
spring.redis.port=6379

3.テストコード:

@RequestMapping("/")
@ResponseBody
String home(HttpSession session) {
    session.setAttribute("test", new Date());
    return "Hello World!";
}

4.短所:


redisでセッション管理をしている間に、2つのajaxがbegin_request時間はほぼ一致するが,actionに到達する時間に差があり,500ミリ秒程度の差(sessionの処理)があり,要求ブロックを生じやすい.
テキストリンク
まとめ:インタフェースapiタイプの小さなプロジェクトではsessionを構成しないことができます.