springboot获取session
时间: 2023-04-27 09:04:25 浏览: 654
SpringBoot中使用Session共享实现分布式部署的示例代码
在 Spring Boot 中获取 HttpSession 对象可以通过 HttpServletRequest 的 getSession() 方法来实现。
例如:
```java
@Controller
public class MyController {
@RequestMapping("/test")
public String test(HttpServletRequest request) {
HttpSession session = request.getSession();
// 使用 session
return "success";
}
}
```
也可以使用 @Autowired 注入 HttpSession,例如:
```java
@Controller
public class MyController {
@Autowired
private HttpSession session;
@RequestMapping("/test")
public String test() {
// 使用 session
return "success";
}
}
```
当然还有另外一种方式,使用Spring MVC提供的 @SessionAttributes 注解来获取session
```
@Controller
@SessionAttributes("user")
public class MyController {
@RequestMapping("/test")
public String test(@ModelAttribute("user") User user) {
// 使用 user
return "success";
}
}
```
注意:使用 @SessionAttributes 注解时需要在对应的配置类中开启注解支持。
```
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
resolvers.add(new SessionAttributeMethodArgumentResolver());
}
}
```
阅读全文