JSF 2 Обработка данных - PullRequest
       1

JSF 2 Обработка данных

1 голос
/ 25 августа 2011

Я разрабатываю приложение с JSF2 в Tomcat. Все еще довольно свежий для JSF У меня есть вопрос, на который, я думаю, довольно просто ответить кому-то, у кого есть довольно хороший опыт разработки веб-приложений, особенно в JSF 2. Он касается способа хранения пользовательских данных во время их взаимодействия с приложением. В настоящее время я сохраняю большое количество данных в управляемом компоненте в рамках сеанса (например, в коллекции ранее извлеченных из объектов базы данных, которые сами связаны с другими объектами), и всякий раз, когда делается запрос, приложение будет обслуживать любой из этих объектов, сохраненных в этой коллекции. Но я обеспокоен тем, что сессионный компонент становится слишком раздутым, и я не знаю, сколько памяти безопасно для одного сессионного компонента. Чего я не знаю, так это когда приложение будет запущено в производство, и многие пользователи будут вести журнал, тогда сервер будет в порядке, чтобы справиться с этим. Поэтому я думаю, что мой вопрос заключается в следующем.

Есть ли какое-либо правило о покупке, хранении и обслуживании большого количества пользовательских данных, которые поступают из базы данных:

  1. Можно ли делать это по-своему (то есть хранить много вещей в компоненте сессионной области), чтобы при каждом запросе приложение не запрашивало и не получало данные из базы данных. И это тот случай, когда лучше всего загружать объекты, связанные с объектом, хранящимся в списке, чтобы они загружались не все сразу, а только после того, как реальный объект используется для выполнения некоторых операций перед отправкой данных пользователю.

  2. Или если приложение должно поддерживать сессионные компоненты достаточно легкими (без списков предварительно извлеченных сущностей, объектов и т. Д.) И вместо этого совершать поездку в базу данных каждый раз, когда требуется больший фрагмент данных, извлекайте его и обслуживайте муха?

  3. Или, возможно, для этого есть совершенно другой метод, предпочтительный или рекомендуемый.

Все предложения и помощь очень приветствуются.

1 Ответ

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

Вы определенно не должны выполнять задачу кэширования сущностей с помощью бобов JSF.Вы должны делегировать задание кэширования сущности на уровень персистентности и настроить / настроить его там.Например, JPA и Hibernate имеют довольно хорошую поддержку кэширования.Вот несколько статей, чтобы прочитать об этом:

Компонент JSF в области сеанса должен просто содержать данные в области сеанса, которые используются в каждом запросеВеб-приложение на протяжении всей сессии браузера.Например, вошедший в систему пользователь, пользовательские настройки, язык пользователя / языковой стандарт и т. Д.

Данные (формы) должны быть просто представлены JSF-запросом или представлением bean-объекта bean-объекта.Просто вызывайте базу данных при каждом новом запросе или просмотре и не беспокойтесь о дороговизне обращений к базе данных в вашем компоненте поддержки JSF.Пусть слой постоянства беспокоится об этом.

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