В Spring Boot1.5 можно было обновить экземпляр с помощью @SessionScope. Однако, когда используется Spring Boot 2.0, значение не обновляется и остается нулевым.
Сессионный компонент:
@Data
@SessionScope
public class UserDto {
private String firstName;
private String lastName;
}
Контроллер:
@Controller
public class GreetingController {
@Autowired
UserDto userInfo;
@RequestMapping("/greeting")
public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
userInfo.setFirstName("John");
userInfo.setLastName("Smith");
/**
* There was null value in Spring Boot 2.0.
* In Spring Boot 1.5 it was "John".
**/
System.out.println(userInfo.getFirstName());
return "greeting";
}
}
результат отладки