我正在制作一个简单的文件服务器应用程序。该应用程序正在扫描文件的当前位置,并将其显示给用户。

我需要一个变量,当前路径为会话本地。我想避免一个用户将目录更改为另一用户时的情况。

照原样:


User1正在打开主页(当前位置Z:/),user1正在将目录更改为Z:/ foo,User2正在打开主页,而他是主页
Z:/ foo。


成为:


User1正在打开主页(当前位置Z:/),user1正在将目录更改为Z:/ foo,User2正在打开主页,而他是主页
Z:/,但User1仍位于Z:/ foo


我正在尝试使用@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)

但是要么我在编码方面失败了,要么对我不起作用

最佳答案

您必须创建单独的会话范围的Bean,并在需要会话范围的数据时将其注入,即使在应用程序范围的Bean中也是如此。例如

@Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)
@Component
public class UserSpace{

    private File userRoot=....somehow set that on bean creation - eg at @PostConstruct
   .....other fields if needed
}


然后

@Service
class YoutService{

  @Autowired
  private UserSpace userSpace;// this will be session scoped proxy

}

10-06 12:41
查看更多