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を構成しないことができます.