жизненный цикл процессора prettyfaces

Я использую красивые лица, чтобы переписать свои URL-адреса, и я использую com.ocpsoft.pretty.faces.rewrite.Processor; Я заметил, что этот фильтр несколько раз вызывается при загрузке URL-адреса, поэтому, когда я обращаюсь к своей БД для загрузки некоторых данных, это крайне неэффективно.

Что я хочу, так это поместить процессор в applicationScope, чтобы он не окрашивался и был доступен для всех пользователей, таким образом мне не придется несколько раз создавать свои сервисные компоненты.

Какие-либо предложения ?


person IturPablo    schedule 31.03.2012    source источник


Ответы (2)


Не уверен, что это применимо к Processor, но вы можете попробовать отключить режим development:

<context-param>
  <param-name>com.ocpsoft.pretty.DEVELOPMENT</param-name>
  <param-value>false</param-value>
</context-param>

Дополнительные сведения см. в этой теме.

person andbi    schedule 31.03.2012
comment
К сожалению, отключение режима разработки здесь ничего не даст. Эта конкретная функция не меняет поведение между режимами разработки и производства. - person Lincoln; 01.04.2012
comment
@IturPablo, поймай лучше @Lincoln, пока он рядом, лучше него никто не разбирается в теме, он автор PrettyFaces )) - person andbi; 02.04.2012

Пользовательский процессор будет создан один раз для каждого запроса — https://github.com/ocpsoft/prettyfaces/blob/3.x/core/src/main/java/com/ocpsoft/pretty/faces/переписать/процессор/CustomClassProcessor.java

Если вам нужна такая интеграция, особенно если вы хотите, чтобы элемент конфигурации жил так же долго, как и ваше приложение, то я мог бы спросить, что вы пытаетесь с ним сделать, потому что процессор PrettyFaces, хотя и может быть используемый для этого, не очень гибок, тогда как...

OCPsoft Rewrite — URLRewriteFilter (ядро PrettyFaces 4) может интегрировать CDI в вашу конфигурацию и дает вам больше мощнее, чем раньше с процессорами от PrettyFaces, но при этом все еще упрощается... например: вы можете захотеть использовать интеграцию CDI для расширения вашей конфигурации или внедрить классы доступа к базе данных.

https://github.com/ocpsoft/rewrite/tree/master/integration-cdi

У вас будет гораздо больше контроля, используя Rewrite сегодня (или PrettyFaces4, когда он будет выпущен).

person Lincoln    schedule 01.04.2012
comment
Привет, мне уже удалось внедрить свои весенние зависимости;) (кстати, отличная работа). Итак, теперь, если я расширим HttpConfigurationProvider, смогу ли я настроить его область? - person IturPablo; 01.04.2012
comment
Просто реализуйте метод getConfiguration() и верните ConfigurationBuilder.create()... (добавьте сюда свои правила). - person Lincoln; 03.04.2012