Spring AOP总结
2014-12-23 11:14
309 查看
1.切面bean
3.AOP流程解释
当controller中调用serviceIml中的方法时,AOP生效。
注意:当我们用aop切controller这样就不生效了,原因是因为项目启动时我们spring MVC加载的是dispatcher-servlet.xml,我们只需要将上面2的配置移动到dispatcher-servlet.xml我们就能切controller了!
package com.web.aop; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; /** * * @see * @author xuxile * @date 2014-12-23 上午9:18:58 * @version * @desc TODO */ /** * 日志切面 * */ public class logAspect { public void afterMethod(JoinPoint jp) { System.out.println("后置通知: " + jp.getTarget().getClass().getName() + "." + jp.getSignature().getName()); } public Object aroundMethod(ProceedingJoinPoint pjp) throws Throwable { long time = System.currentTimeMillis(); Object retVal = pjp.proceed(); time = System.currentTimeMillis() - time; System.out.println("环绕通知: " + time + " ms"); return retVal; } public void beforeMethod(JoinPoint jp) { System.out.println("前置通知: " + jp.getTarget().getClass().getName() + "." + jp.getSignature().getName()); } public void throwingMethod(JoinPoint jp, Throwable ex) { System.out.println("异常通知:" + jp.getTarget().getClass().getName() + "." + jp.getSignature().getName() + " throw exception"); System.out.println(ex.getMessage()); } }2.在applicationContext.xml配置AOP
<span style="color:#006600;"><!-- 配置切面bean --> <bean id="logAspect" class="com.web.aop.logAspect"/> <!-- 配置AOP --> <aop:config> <!-- 配置切点表达式 --> <aop:pointcut expression="execution(* com.web.service.impl.*.*(..))" id="pointcut"/> <!-- 配置切面及通知 --> <aop:aspect ref="logAspect" order="1"> <aop:before method="beforeMethod" pointcut-ref="pointcut"/> <aop:after method="afterMethod" pointcut-ref="pointcut"/> <aop:around method="aroundMethod" pointcut-ref="pointcut"/> <!-- 异常通知中的throwing名称必须与切面bean中的异常参数名称一致 --> <aop:after-throwing method="throwingMethod" pointcut-ref="pointcut" throwing="ex"/> </aop:aspect> </aop:config></span>
3.AOP流程解释
当controller中调用serviceIml中的方法时,AOP生效。
注意:当我们用aop切controller这样就不生效了,原因是因为项目启动时我们spring MVC加载的是dispatcher-servlet.xml,我们只需要将上面2的配置移动到dispatcher-servlet.xml我们就能切controller了!
相关文章推荐
- spring的aop用法个人使用总结
- Spring总结-AOP
- Spring Aop实现方式总结
- Spring学习笔记(17)-----------Spring AOP总结(2)
- Spring学习笔记(16)--------------Spring AOP总结(1)
- Spring总结之AOP
- springAOP事物管理不生效原因总结
- Spring学习总结(1)——Spring AOP的概念理解
- spring aop实现总结
- [Spring]Spring AOP学习笔记(3)---Spring JDBC总结
- Spring学习总结6(AOP-基于注解)
- 总结从hello word到Spring Aop框架_提炼精髓
- Spring Aop实现方式总结
- SpringAOP之学习总结
- Spring学习总结2(AOP-代理模式)
- Spring入门Blog[八、Spring Aop织入点语法和相关案例总结]
- SpringAOP[4.源码解析总结(2)]
- 技术总结 (三)--Spring aop
- Spring总结(二)(AOP)