调试时使用空字段的自动会话范围对象(IntelliJ)

时间:2018-03-17 23:09:16

标签: 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 setters

}

AnotherClass.java

@Component
public class AnotherClass {
    @Autowired
    private SessionComponent session;

    public void method() {
        // Breakpoint here
        System.out.println(session.getSessionId());
    }
}

代码在实践中运行良好。例如,我可以在具有@Autowired我的SessionComponent的AnotherClass中,并且代码可以工作。

但是,SessionComponent在IDE的调试器(变量视图)中没有正确显示。我正在使用IntelliJ社区版。当我在AnotherClass中设置断点时(如下所示),会话的字段在调试器中都显示为“null”。但是,使用evaluate表达式工具可以运行session.getSessionId()并返回正确的结果。

有什么想法吗?谢谢!

0 个答案:

没有答案