SpringAOP的注解方式
AOP(注解)【理解】【应用】【重点】
1.AOP注解配置流程
A.开启AOP配置支持注解@aspectj
核心配置文件中添加以下配置,功能等同于注解配置Bean的自动扫描路径
<aop:aspectj-autoproxy/>
B.将所有参与AOP配置的类声明为Spring控制的Bean
可以使用XML配置格式或注解格式
C.在切面类的类定义上方添加切面的声明
@Aspect
public class MyAdvice {…}
D.将切面类中的方法配置为指定类型的通知,配置时指定其切入点
@Before("execution(* cn.itcast.aop.annotation.UserImpl.add())")
public void before(JoinPoint jp) {
System.out.println("before");
}
2.配置公共的切入点
A.在切面类中声明一个方法(私有的),将该方法配置为切入点
@Pointcut("execution(* cn.itcast.aop.annotation.UserImpl.add())")
private void pt(){}
B.使用配置的切入点
@Before("引用切入点")
格式:切面类名.方法名()
范例:@Before("MyAdvice. pt ()")
3.注解开发通知的通知类别
前置通知 @Before(value="execution(* *..*.*(..))")
后置通知 @After(value="execution(* *..*.*(..))")
抛出异常通知 @AfterThrowing(value="execution(* *..*.*(..))",throwing="ex")
返回后通知 @AfterReturning(value="execution(* *..*.*(..))",returning="ret")
环绕通知 @Around(value="execution(* *..*.*(..))")
4.注解格式AOP顺序
总体顺序由上到下为下列描述顺序
around before
before
around after
after
afterReturning
实际开发以最终运行顺序为准
5.返回值与异常对象的获取方式
@AfterReturning(value="MyAdvice.pt()",returning="aa")
public void afterReturning(JoinPoint jp,Object aa){
System.out.println("afterReturning......."+aa);
}
SpringAOP的注解方式的更多相关文章
- 【SpringAop】【统一日志处理】注解方式理解以及使用
[注意:本次代码的demo会存在百度网盘,由于公司的保密,禁止上传,所以仅本人可见] 目前公司在做数据资产项目,数据质量部分使用到了springaop做统一日志处理,以前对这块有了解,有点模糊不清,今 ...
- SpringAOP(注解方式实现面向切面编程)之常用Before、After、Around
一.首先在Springmvc.xml文件中引入如下内容(本示例是在ssm框架基础上实现的) 1.引入命名空间 xmlns:aop="http://www.springframework.or ...
- spring与hibernate整合配置基于Annotation注解方式管理实务
1.配置数据源 数据库连接基本信息存放到properties文件中,因此先加载properties文件 <!-- jdbc连接信息 --> <context:property-pla ...
- 注解方式实现Spring声明式事务管理
1.编写实体类 public class Dept { private int deptId; private String deptName; public int getDeptId() { re ...
- 来一手 AOP 注解方式进行日志记录
系统日志对于定位/排查问题的重要性不言而喻,相信许多开发和运维都深有体会. 通过日志追踪代码运行状况,模拟系统执行情况,并迅速定位代码/部署环境问题. 系统日志同样也是数据统计/建模的重要依据,通过分 ...
- spring 纯注解方式 与AOP
spring注解方式 以前我也使用过纯注解方式.现在在这里做个记录 我们先认识几个我们都耳熟能详的注解 @configuration :从spring3.0这个注解就可以用于定义配置类,可以替换xml ...
- Spring声明式事务管理(基于注解方式实现)
----------------------siwuxie095 Spring 声明式事务管理(基于注解方式实现) 以转 ...
- 基于AspectJ的注解方式进行AOP开发
-------------------siwuxie095 基于 AspectJ 的注解方式进行 AOP 开发 ...
- Spring 中使用XML配置方式和使用注解方式实现DI
Spring容器给我们提供了很好的环境,我们只关注主要业务即可,其他的无需关注太多.今天刚学的DI DI(Dependency Injection):依赖注入 使用XML配置文件完成依赖注入 1.1普 ...
随机推荐
- Eclipse(非J2EE版本)配置Extjs环境以及安装部署Tomcat
Eclipse(非J2EE版本)配置Extjs环境(Spket) 1. 安装spket插件,帮助->安装新软件->http://www.agpad.com/update. 2. 设置Spk ...
- bzoj 1411 [ZJOI2009]硬币游戏
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1411 [题意] N个硬币放在一个有2*N个位置的圆桌上,求T次操作后的情况.对于一个操 ...
- window2008 64位系统没有office组件问题分析及解决
服务器是windows server2008 64位系统, 我的系统需要用到Microsoft.Office.Interop.Excel组件 在上传Excel单据遇到错误:检索 COM 类工厂中 CL ...
- HW6.25
import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...
- HDU2686-Matrix & HDU3376-Matrix Again(费用流)
比较简单的题了. 只需从左上角到右下角找两条路就可以了. 因为每个点只能走一次,所以拆点,限制流量为1. 因为求的是最大值,所以权值取反求最小值. 因为第一个点和最后一个点经过两次,只算一次,最后要减 ...
- python 输出字符串如果遇到字典
>>> d = {'a':1} >>> print '%s' % 1,d 1 {'a': 1} >>> print '%s %s' % 1,d T ...
- hdoj 1859 最小长方形
最小长方形 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- iOS: ARC和非ARC下使用Block属性的问题
1. Block的声明和线程安全 Block属性的声明,首先需要用copy修饰符,因为只有copy后的Block才会在堆中,栈中的Block的生命周期是和栈绑定的,可以参考之前的文章(iOS: 非AR ...
- 网络操作与AFNetworking
众所周知,苹果搞的一套框架NSContention发送请求与接收请求的方式十分繁琐.操作起来很不方便.不仅要做区分各种请求设置各种不同的参数,而且还要经常在多线程里操作,同时还要对请求与返回的数据做各 ...
- HTML中noscript的用法
noscript 元素用来定义在脚本未被执行时的替代内容(文本).此标签可被用于可识别 <script> 元素用来定义在脚本未被执行时的替代内容(文本). 标签但无法支持其中的脚本的浏览器 ...