Spring中AOP注解实现
来源:互联网 发布:曾是编程员的音乐人 编辑:程序博客网 时间:2024/06/06 00:05
1.AOP的jar包依赖
<!--aop的jar包依赖 --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>1.8.9</version> </dependency>
2.beans.xml配置
(1)添加命名空间
xmlns:aop="http://www.springframework.org/schema/aop"
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd(2)配置AOP代理
<aop:aspectj-autoproxy/>beans.xml:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd "><!-- 配置扫描器 扫描包的范围 不代表该范围下所有的bean都被实例化,需要借助注解配合使用--><context:component-scan base-package="com.shsxt"></context:component-scan><context:annotation-config /><!--开启代理标识,在程序运行期,动态创建目标对象代理对象 --><aop:aspectj-autoproxy/> </beans>
package com.yonyou.aop;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.Component;/** * @author Administrator * */@Component//切面注解@Aspectpublic class LogCut {//切入点注解@Pointcut("execution(* com.yonyou.service..*.*(..))")public void cut(){}//目标类方法执行前执行该方法@Before(value="cut()")public void before(){System.out.println("目标类方法执行前执行该方法........");}@AfterReturning(value="cut()")public void afterReturn(){System.out.println("方法正常结束后执行该输出");}@After(value="cut()")public void after(){System.out.println("最终通知,方法无论是否发生异常,都会执行该输出");}@AfterThrowing(value="cut()", throwing="e")public void afterThrow(Exception e){System.out.println("如果方法执行发生异常,执行该输出"+e);}@Around(value="cut()")public Object around(ProceedingJoinPoint pjp){Object result=null;System.out.println("环绕通知---前置通知");try {Object[] params=pjp.getArgs();//获取方法参数if(null!=params||params.length>0){for (Object object : params) {System.out.println(object.toString());}}System.out.println("方法签名:"+pjp.getSignature());//获取方法签名System.out.println("目标类"+pjp.getTarget());//目标类result=pjp.proceed();//执行目标对象的方法System.out.println("环绕通知---后置通知");} catch (Throwable e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{System.out.println("环绕通知---最终通知");}return result;}}
阅读全文
0 0
- Spring中AOP注解实现
- spring中注解实现aop
- spring中AOP——注解实现
- spring(AOP) 注解实现aop
- spring注解实现AOP
- Spring注解实现AOP
- Spring 注解Aop实现
- 【spring】AOP注解实现
- spring 注解实现AOP
- Spring AOP 注解实现
- spring中 aop注解
- Spring中AOP注解
- 使用注解实现Spring aop
- 十、Spring AOP注解实现
- Spring 注解实现AOP通知
- spring使用注解实现AOP
- spring注解形式aop实现
- Spring-注解方式实现AOP
- 基于Swift 的Apple Watch 开发教程介绍
- 铺地板状压DP求方案数
- 283. Move Zeroes
- 二步实现 远程连接 阿里云SqlServer 2012 数据库服务器
- Linux 查看系统硬件信息(实例详解)
- Spring中AOP注解实现
- ACDSee 2018 Pro下载 v11.0.785免费版
- Linux学习(五)软件包和文件系统管理
- 双飞翼模型---聊天框
- Spring+Quartz框架实现定时任务(集群,分布式)
- sed用法小记
- ubuntu14.04下安装matlab2014a
- attr与is
- Linux用户与用户组笔记