Spring-AOP-增强
2018-06-27 09:46:41来源:博客园 阅读 ()
Spring AOP 又称 面向切面编程,要实现AOP就要有切点,增强,织入,连接点,切面...
增强又分为:前置增强,后置增强,异常抛出增强,环绕增强,后置增强,最终增强
编写配置文件中的增强代码之前我们先创建一个增强类,用于存放增强的代码:
import org.apache.log4j.Logger; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; public class UserAdvice { private Logger log=Logger.getLogger(UserAdvice.class); //前置增强 public void before(JoinPoint j) { String methodName=j.getSignature().getName(); String className=j.getTarget().getClass().getName(); log.info(className+"类"+methodName+"方法的前置增强"); } //异常抛出增强 public void afterThrowing(JoinPoint j,Exception e) { String methodName=j.getSignature().getName(); String className=j.getTarget().getClass().getName(); log.info(className+"类"+methodName+"方法异常:"+e.getMessage()); } //后置增强 public void afterreturning(JoinPoint j) { String methodName=j.getSignature().getName(); String className=j.getTarget().getClass().getName(); log.info(className+"类"+methodName+"方法的后置增强"); } //最终增强 public void after(JoinPoint j){ String methodName=j.getSignature().getName(); String className=j.getTarget().getClass().getName(); log.info(className+"类"+methodName+"方法的最终增强"); } //环绕增强 public Object around(ProceedingJoinPoint j) { Object resoult=null; log.info("环绕前"); try { resoult=j.proceed(); log.info("环绕后"); } catch (Throwable e) { e.printStackTrace(); } return resoult; } }
配置文件中:
<!--创建增强类的bean-->
<bean id="adv" class="cn.bdqn.dao.UserAdvice"></bean> <aop:config>
<!--定义切点 expression允许使用的范围--> <aop:pointcut expression="execution(* cn.bdqn.service..*.*(..))" id="p1"/>
<!--引用增强类--> <aop:aspect ref="adv">
<!--method对应的是增强类中对应的方法,pointcut-ref对应的是切点-->
<aop:before method="before" pointcut-ref="p1" /><!--前置增强 在方法执行前执行-->
<!--后置增强 在方法执行完执行--> <aop:after-returning method="afterreturning" pointcut-ref="p1"/>
<!--异常抛出增强 在方法执行处错误时执行--> <aop:after-throwing method="afterThrowing" pointcut-ref="p1" throwing="e"/>
<!--最终增强 无论方法是否出现异常都会执行--> <aop:after method="after" pointcut-ref="p1"/>
<!--环绕增强 在方法执行前和方法执行后执行--> <aop:around method="around" pointcut-ref="p1"/> </aop:aspect> </aop:config>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Spring系列.ApplicationContext接口 2020-06-11
- springboot2配置JavaMelody与springMVC配置JavaMelody 2020-06-11
- 给你一份超详细 Spring Boot 知识清单 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 掌握SpringBoot-2.3的容器探针:实战篇 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash