Spring Framework, мне нужна одна переменная, чтобы быть зависимой от сессии - PullRequest
0 голосов
/ 07 октября 2019

Я делаю простое приложение для файлового сервера. Приложение сканирует текущее местоположение для файлов и показывает их пользователю.

Мне нужна одна переменная, текущий путь должен быть локальным для сеанса. Я хочу избежать ситуации, когда один пользователь меняет каталог на другого.

Как:

Пользователь1 открывает домашнюю страницу (текущее местоположение Z: /), пользователь1 меняет каталог на Z: / foo, Пользователь2 открывает домашнюю страницу ион является домашней страницей Z: /foo.

Быть:

Пользователь1 открывает домашнюю страницу (текущее местоположение Z: /),user1 меняет каталог на Z: / foo, User2 открывает домашнюю страницу, и он является домашней страницей Z: /, но User1 по-прежнему находится в Z: / foo

Я пыталсяиспользуйте @Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.TARGET_CLASS)

Но либо я допустил некоторые сбои (в кодировании), либо он не будет работать для меня

1 Ответ

0 голосов
/ 07 октября 2019

Вы должны создать отдельный сессионный компонент и внедрять его всякий раз, когда вам нужны данные на уровне сеанса - даже в бинах приложения. например,

@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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...