Я занимаюсь разработкой веб-приложения с JSF2 и Spring3, и у меня возникла проблема с десериализацией.
У меня есть некоторые bean-объекты в сессионной области, определенные так:
@Controller(value = "admin")
@Scope(value = "session")
public class AdminBean implements Serializable {
...
Также у меня есть некоторые синглеты, определенные так:
@Repository
public class Repo {
Синглтоны вводятся в сессию-боб вроде этого
@Resource
private transient Repo repo;
После того как я добавил transient
, мои проблемы с сериализацией / десериализацией исчезли.Но теперь у меня проблема в том, что после десериализации зависимости (repo
в этом случае) равны нулю.Я много искал по этой проблеме и нашел некоторые обходные пути, но мне все еще интересно, что является лучшим решением для этой проблемы?
Мне кажется, что использование bean-компонентов на уровне приложения в сессионных компонентах является довольно распространенным случаем, разве нет чистого решения для этого?Я нашел решение с @Configurable, но действительно ли мне нужны некоторые вещи, связанные с загрузкой?Цели инъекции уже подпружинены, поэтому для меня это не имеет смысла .. Пожалуйста, сообщите мне
обновление 2 года спустя : Вы МОЖЕТЕ прозрачно внедрить bean-объекты в рамках сеансав application-scoped-bean (хотя в большинстве случаев это может быть не очень хорошей идеей).Мне просто нужно было установить proxyMode на @Scope соответственно.