Spring Boot Session Sample

2018-01-08, Spring Boot Version 1.5.9時点
Spring Boot を使って、input1,input2,input3,input complete画面で、user sessionを共有する処理を実装してみました。
Spring Boot すごく簡単です!

画面遷移のイメージ

f:id:tomoTaka:20180108083001p:plain

各controllerに「@SessionAttributes("user")」を実装するだけで、ModelAttribute("user")に登録しているuser attributeがsession管理されます

input1Controller.java

@Controller
@SessionAttributes("user")  // *** ここでsession管理するattributeを指定
public class Input1Controller {
    private static final Logger logger = LoggerFactory.getLogger(Input1Controller.class);
    @ModelAttribute("genders")
    public List<String> genders() {
        return Arrays.asList("male", "female");
    }
    @PostMapping("/input1")
    public String input1(@ModelAttribute("user") User user) {
        logger.info("start input1 method user=[{}]", user.toString());
        return "input2";
    }
}
session をRedisに保存するために「@EnableRedisHttpSession」annotationを追加するだけです
@SpringBootApplication
@EnableRedisHttpSession  // *** Redisを使ってsession管理するために指定
public class RedisSessionSampleApplication {
    public static void main(String[] args) {
        SpringApplication.run(RedisSessionSampleApplication.class, args);
    }
}

Redis

Redisは、dockerを使って起動しておきます

docker-compose -f docker/docker-compose.yml up

画面遷移

f:id:tomoTaka:20180107220139p:plain
f:id:tomoTaka:20180107220150p:plain
f:id:tomoTaka:20180107220203p:plain
f:id:tomoTaka:20180107220212p:plain

各コードは、以下のgithub
github.com

実装するのは、楽しいです!