Использование Session Scoped Bean - PullRequest
3 голосов
/ 09 июня 2010

Следующий код возвращает ноль:

AController.java

    private MyAppUser getMyAppUser(HttpSession session) {
        MyAppUser myAppUser = (MyAppUser) session.getAttribute("myAppUserManager");
        return myAppUser;
    }

Я также пробовал это:

AController.java

@Autowired
MyAppUser myAppUser;

Несмотря на то, что у меня есть следующее в моем контексте:

<bean id="myAppUserManager" class="com.myapp.profile.MyAppUser" scope="session"/>

Это не имеет никакого смысла для меня, бин "myAppUser" - это бин, который абсолютно никогда не может быть нулевым, и мне нужно иметь возможность ссылаться на него с контроллеров, он мне не нужен в сервисахили репозитории, просто контроллеры, но кажется, что они не сохраняются в сеансе, сценарий использования предельно прост, но я не смог докопаться до сути проблемы или найти хороший обходной путь

1 Ответ

2 голосов
/ 09 июня 2010

Сессионные компоненты недоступны в этом сеансе. Spring управляет ими и сохраняет их в сеансе, но не таким образом, чтобы их можно было выловить вручную.

Если вы хотите использовать боб с заданной областью действия, вы подключаете его к другим бобам, как и любой другой боб. Однако есть некоторые вещи, на которые стоит обратить внимание - см. здесь . По сути, если вы хотите подключить bean-компонент A в области сеанса к bean-компоненту B, то bean-компонент B также должен быть в области сеанса (или в области запроса), , если вы не используете прокси-объекты scoped - смотрите предыдущую ссылку о том, как это сделать.

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