Skip to content

Commit d213368

Browse files
committed
Use persistent servlet session with DevTools
Set `server.session.persistent=true` when running DevTools to ensure persistent sessions are used. Fixes gh-3530
1 parent 08d1f6d commit d213368

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/DevToolsPropertyDefaultsPostProcessor.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class DevToolsPropertyDefaultsPostProcessor implements BeanFactoryPostProcessor,
4646
properties.put("spring.groovy.template.cache", "false");
4747
properties.put("spring.velocity.cache", "false");
4848
properties.put("spring.mustache.cache", "false");
49+
properties.put("server.session.persistent", "true");
4950
PROPERTIES = Collections.unmodifiableMap(properties);
5051
}
5152

spring-boot-samples/spring-boot-sample-devtools/src/main/java/sample/devtools/MyController.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616

1717
package sample.devtools;
1818

19+
import java.util.Date;
20+
21+
import javax.servlet.http.HttpSession;
22+
1923
import org.springframework.stereotype.Controller;
2024
import org.springframework.ui.ModelMap;
2125
import org.springframework.web.bind.annotation.RequestMapping;
@@ -25,10 +29,15 @@
2529
public class MyController {
2630

2731
@RequestMapping("/")
28-
public ModelAndView get() {
29-
ModelMap model = new ModelMap("message", Message.MESSAGE);
32+
public ModelAndView get(HttpSession session) {
33+
Object sessionVar = session.getAttribute("var");
34+
if (sessionVar == null) {
35+
sessionVar = new Date();
36+
session.setAttribute("var", sessionVar);
37+
}
38+
ModelMap model = new ModelMap("message", Message.MESSAGE).addAttribute(
39+
"sessionVar", sessionVar);
3040
return new ModelAndView("hello", model);
31-
3241
}
3342

3443
}

spring-boot-samples/spring-boot-sample-devtools/src/main/resources/templates/hello.html

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
</head>
88
<body>
99
<h1 layout:fragment="header" th:text="${message}">Header</h1>
10-
<div layout:fragment="content">Lorem ipsum dolor sit amet,
10+
<div layout:fragment="content">
11+
<h2 th:text="${sessionVar}">Session Var</h2>
12+
Lorem ipsum dolor sit amet,
1113
consectetur adipiscing elit. Cras ut fringilla augue, quis dictum
1214
turpis. Sed tincidunt mi vel euismod viverra. Nulla facilisi.
1315
Suspendisse mauris dolor, egestas ac leo at, porttitor ullamcorper

0 commit comments

Comments
 (0)