首页 > 代码库 > spring aop的使用
spring aop的使用
使用上次整合的s2sh工程,加入aop的功能。aop(面向切面编程)是一种对oop的完善,比如在进行数据库操作的时候执行方法前或者后加入一条日志记录,使用一个额外的类去做日志操作,让dao类专注地做它自己的工作,使得类的代码更加简洁和专用化。
package advice; public class addAdvice { public void beforeAdvice(){ System.out.println("==添加操作=="); } }
package advice; public class deleteAdvice { public void beforeAdvice(){ System.out.println("==删除操作=="); } }
在applicationContext.xml中加入
<!-- 配置切面类--> <bean id="addAspect" class="advice.addAdvice"></bean> <!-- 配置切面类--> <bean id="deleteAspect" class="advice.deleteAdvice"></bean> <!-- 配置aop--> <aop:config> <!-- 配置切面--> <aop:aspect ref="addAspect"> <!-- 切点表达式--> <aop:pointcut id="userAdvice1" expression="execution(* service.UserService.addService(..))"/> <aop:before method="beforeAdvice" pointcut-ref="userAdvice1"></aop:before> </aop:aspect> </aop:config> <aop:config> <!-- 配置切面--> <aop:aspect ref="deleteAspect"> <!-- 切点表达式--> <aop:pointcut id="userAdvice2" expression="execution(* service.UserService.deleteService(..))"/> <aop:before method="beforeAdvice" pointcut-ref="userAdvice2"></aop:before> </aop:aspect> </aop:config>
使用aop标签之前必须先加入dtd
xmlns:aop="http://www.springframework.org/schema/aop"
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
切面表示的是你要使用的那个通知类,通知类里面是对切点类的前后加入执行方法的类。切点类就是当这个类执行到指定方法的时候回执行切面类方法的类。
切点表达式的第一个*表示任意返回值,可以把包后面的UserService改成*,这样就是对service下的所有方法执行切面方法。
<aop:before/>是定义一个前置通知,还有其他三种方式就不介绍了。
spring aop的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。