Spring 调试时具有空字段的自动连线会话作用域对象(IntelliJ)
这里对Spring Boot还很陌生,所以希望能得到一些帮助。我已经设法创建了一个会话范围的组件(使用@SessionScope注释)。此组件旨在为我的web应用程序存储给定会话的用户信息 SessionComponent.javaSpring 调试时具有空字段的自动连线会话作用域对象(IntelliJ),spring,spring-mvc,spring-boot,intellij-idea,autowired,Spring,Spring Mvc,Spring Boot,Intellij Idea,Autowired,这里对Spring Boot还很陌生,所以希望能得到一些帮助。我已经设法创建了一个会话范围的组件(使用@SessionScope注释)。此组件旨在为我的web应用程序存储给定会话的用户信息 SessionComponent.java @Component @SessionScope public class SessionComponent { private String sessionId; private User user; // Getters and
@Component
@SessionScope
public class SessionComponent {
private String sessionId;
private User user;
// Getters and setters
}
@Component
public class AnotherClass {
@Autowired
private SessionComponent session;
public void method() {
// Breakpoint here
System.out.println(session.getSessionId());
}
}
AnotherClass.java
@Component
@SessionScope
public class SessionComponent {
private String sessionId;
private User user;
// Getters and setters
}
@Component
public class AnotherClass {
@Autowired
private SessionComponent session;
public void method() {
// Breakpoint here
System.out.println(session.getSessionId());
}
}
该准则在实践中效果良好。例如,我可以在另一个类中使用@Autowired my SessionComponent,代码可以正常工作
但是,SessionComponent在我的IDE的调试器(变量视图)中没有正确显示。我正在使用IntelliJ社区版。当我在另一个类中设置断点(如下所示)时,会话的字段在调试器中都显示为“null”。但是,使用evaluate expression工具可以运行session.getSessionId()
,并返回正确的结果
有什么想法吗?谢谢 对于请求范围的bean,我也面临同样的问题。