在Spring Boot应用中,我们可以通过
@Autowired
注解来注入会话(session)对象。
要使用会话对象,我们需要将HttpServletRequest对象传递给方法,可以在方法中使用
@Autowired
注解来注入HttpServletRequest对象,然后使用
getSession()
方法获取会话对象,例如:
@Controller
public class MyController {
@Autowired
private HttpServletRequest request;
@RequestMapping("/foo")
public String foo() {
HttpSession session = request.getSession();
session.setAttribute("foo", "bar");
return "foo";
在上面的代码中,我们通过HttpServletRequest对象获取会话对象,并将foo
属性设置为bar
。
需要注意的是,我们应该避免直接依赖HttpServletRequest对象,在Spring应用程序中,我们可以使用Spring提供的RequestContextHolder
类来从任何线程中获取当前HttpServletRequest对象。这可以避免直接与HttpServletRequest对象交互,并使我们的代码更具可测试性和灵活性。例如:
@Controller
public class MyController {
@RequestMapping("/foo")
public String foo() {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HttpSession session = request.getSession();
session.setAttribute("foo", "bar");
return "foo";
在上面的代码中,我们使用RequestContextHolder来获取当前HttpServletRequest对象,并使用它来获取会话对象。