我使用漂亮的面孔来重写我的网址,我使用 com.ocpsoft.pretty.faces.rewrite.Processor; 我注意到这个过滤器在加载 URL 时多次调用它,所以当我访问我的数据库以加载一些数据时,这是非常低效的。
我想要的是将处理器放在 applicationScope 中,这样它就不会染色并且可供所有用户使用,这样我就不必创建多次我的服务 bean。
有什么建议么 ?
我使用漂亮的面孔来重写我的网址,我使用 com.ocpsoft.pretty.faces.rewrite.Processor; 我注意到这个过滤器在加载 URL 时多次调用它,所以当我访问我的数据库以加载一些数据时,这是非常低效的。
我想要的是将处理器放在 applicationScope 中,这样它就不会染色并且可供所有用户使用,这样我就不必创建多次我的服务 bean。
有什么建议么 ?
将为每个请求创建一次自定义处理器 - https://github.com/ocpsoft/prettyfaces/blob/3.x/core/src/main/java/com/ocpsoft/pretty/faces/rewrite/processor/CustomClassProcessor .java
如果您需要能够进行这种集成,特别是如果您希望配置元素与您的应用程序一样长,那么我可能会问您想用它做什么,因为 PrettyFaces 处理器,虽然它可以用于此,不是很灵活,而...
OCPsoft Rewrite - URLRewriteFilter(PrettyFaces 4 的核心)能够将 CDI 集成到您的配置中,并为您提供比以前使用 PrettyFaces 的处理器更多的功能,同时仍然使事情变得更简单......例如:您可能想要使用CDI 集成来确定您的配置范围,或注入数据库访问类。
https://github.com/ocpsoft/rewrite/tree/master/integration-cdi
今天,使用 Rewrite(或发布时的 PrettyFaces4),您将拥有更多控制权。
不确定它是否适用于Processor
,但您可以尝试禁用development
模式:
<context-param>
<param-name>com.ocpsoft.pretty.DEVELOPMENT</param-name>
<param-value>false</param-value>
</context-param>
有关详细信息,请参阅此线程。