我正在制作一个简单的文件服务器应用程序。该应用程序正在扫描文件的当前位置,并将其显示给用户。
我需要一个变量,当前路径为会话本地。我想避免一个用户将目录更改为另一用户时的情况。
照原样:
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
}