场景是这样的,需要对很多工程的很多action(webwork)的某些业务方法进行拦截,但只有一个拦截器,切点大概有40多个,我把工程名,action名,要拦截的方法名都写在一个配置文件中了,形如:<projects>
<project>
<name>event</name>
<action>
<!--action to intercept-->
<name>com.fxbird.UserAction</name>
<!--method to intercept-->
<method>updateUser,addUser</method>
</action>
</project>
<project>
<name>game</name>
<action>
<name>com.fxbird.GameAction</name>
<method>updateGame,addGame,deleteGame</method>
</action>
</project>
.....
</projects> 我倒是用继承StaticMethodMatcherPointcutAdvisor并覆盖match方法实现了,从配置文件中读取所有切点信息放入一个List中,
然后可以判断出是否要应用拦截器逻辑,并且配置了下自动代理,非常简单,不过它需要导入cglib和asm两个包了,有没有不需要导入额外的包还能比较简单地实现我的需求?
<project>
<name>event</name>
<action>
<!--action to intercept-->
<name>com.fxbird.UserAction</name>
<!--method to intercept-->
<method>updateUser,addUser</method>
</action>
</project>
<project>
<name>game</name>
<action>
<name>com.fxbird.GameAction</name>
<method>updateGame,addGame,deleteGame</method>
</action>
</project>
.....
</projects> 我倒是用继承StaticMethodMatcherPointcutAdvisor并覆盖match方法实现了,从配置文件中读取所有切点信息放入一个List中,
然后可以判断出是否要应用拦截器逻辑,并且配置了下自动代理,非常简单,不过它需要导入cglib和asm两个包了,有没有不需要导入额外的包还能比较简单地实现我的需求?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货