spring:如何处理多个切点
场景是这样的,需要对很多工程的很多action(webwork)的某些业务方法进行拦截,但只有一个拦截器,切点大概有40多个,我把工程名,action名,要拦截的方法名都写在一个配置文件中了,形如:
我倒是用继承StaticMethodMatcherPointcutAdvisor并覆盖match方法实现了,从配置文件中读取所有切点信息放入一个List中,
然后可以判断出是否要应用拦截器逻辑,并且配置了下自动代理,非常简单,不过它需要导入cglib和asm两个包了,有没有不需要导入额外的包还能比较简单地实现我的需求?
<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两个包了,有没有不需要导入额外的包还能比较简单地实现我的需求?
...全文
相关推荐
spring aop依赖jar包
首先,让我们详细了解一下Spring AOP的核心概念:1. **切面(Aspect)**:切面是关注点的模块化,它封装了多个相关的通知和切点。
Spring基于注解实现AOP
切点是这些行为插入到主业务逻辑的地方,而通知则是实际执行的代码。在Spring中,我们可以通过注解来声明切点和通知。@Aspect注解用于定义一个切面类,该类包含了一个或多个切点表达式和通知方法。
spring aop注解版
`@Pointcut`:切点定义,用于声明关注点发生的位置,可以是一个或多个方法签名。这些方法通常不会有任何实际的实现,而是作为纯粹的切点表达式。8.
Spring AOP 类图
**切面(Aspect)**:切面是Spring AOP的核心概念,它封装了多个相关的横切关注点,如日志记录、事务管理。切面由两个主要部分组成——通知(Advice)和切点(Pointcut)。2.
spring Aop的一个小示例
在实际项目中,我们可以根据需要创建多个切面,每个切面可以包含多个通知,并通过不同的切点表达式将它们应用到不同的方法。这样,我们就可以实现代码的解耦,保持业务逻辑的清晰性,同时管理各种横切关注点。


