Spring Boot Session Sample
2018-01-08, Spring Boot Version 1.5.9時点
Spring Boot を使って、input1,input2,input3,input complete画面で、user sessionを共有する処理を実装してみました。
Spring Boot すごく簡単です!
画面遷移のイメージ
各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