Весной уничтожить ScopedBean? - PullRequest
2 голосов
/ 29 августа 2011

Я использую

configurableListableBeanFactory.destroyScopedBean("MyForm")

, чтобы очистить компонент MyForm от сеанса (это пружинный компонент области действия сеанса).

После уничтожения компонента в следующей следующей строке, которую я сделал,

MyForm myForm= (MyForm)configurableListableBeanFactory.getBean("MyForm");

Я ожидал, что экземпляр myForm будет нулевым, но это не просто объект, но все члены экземпляра MyForm теперь нулевые!

не должен объект myForm бытьполностью удален из сеанса (таким образом, становится доступным для GC) вместо того, чтобы значения его экземпляра изменились на null?

Спасибо

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Ответ на мой запрос таков:

ApplicationContext

построен поверх

BeanFactory

, После того как я уничтожил bean-объект с заданной областью, а затем я снова запрашиваю этот bean-компонент, поэтому мне возвращается новый экземпляр bean-компонента! :)

0 голосов
/ 29 августа 2011

Я думаю, вы обнаружите, что getBean вернул вам новый экземпляр вашего объекта формы, а не тот же объект с очищенными полями формы.

Я скорее ожидал, что он броситздесь исключение, а не возвращение нового объекта, но это описанное поведение действительно согласуется с тем, как работают bean-объекты scoped.

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