Struts2 convention的一点小技巧

         项目中一直使用Strust2WEB框架,采用Convention插件来配置Struts的页面流。之前由于项目小,使用起来也没有出现什么问题。

前些天项目组的同事说应用在Tomcat中启动太慢,有没有什么优化办法?开始我也觉得很奇怪,在Tomcat这个轻量级WEB服务器上发布应用还能慢到哪里去!然而现实是残酷的,我发现在Tomcat中发布真的要几分钟时间!只能一点点来分析为什么慢了。

排除了项目自身的因素,我发现struts2Filter 初始化时花费了很长时间,跟踪发现是Convention 搜索Action配置慢造成的。说实话这种情况在生产环境中我也没有办法,但在开发环境中,由于不同的开发人员维护不同的package,我们可以在这上面做点手脚.

看Struts2 convention的代码,发现可以通过一些Struts常量的配置,来限定Convention的搜索范围,进行合适的设置,会大大缩短启动时间。

Convention预留了几个常量,他们依次是:

struts.convention.package.locator,用于指定哪些package属性进入搜索范围,默认好像是struts,strut2,action,actions

struts.convention.action.packages:用于指定哪些package中的类纳入扫描范围,如果设置为com.a,则表明com.a之下的class都纳入扫描范围,可以设置多个路径,中间使用”,”分隔。

我们可以适当配置 struts.convention.action.packages和struts.convention.package.locator,做到限定扫描范围,加速启动的目的。

需要注意的是:Struts在处理这些参数的时候,采用的是||(OR)逻辑,即

判断package范围 || 判断locator ,因此如果要使用package限定范围的话,最好将locator设置为空,避免出现影响。

一个简单的例子:

<constantname="struts.convention.package.locators" value=""/>

<constantname="struts.convention.action.packages" value="com.a,com.b,com.c.d"/>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值