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普 ...
随机推荐
- LWIP互联网资料汇总
本文主要搜集了下互联网上关于LWIP的资料和教程 欢迎补充 第一部分:移植 LWIP在UCOS上移植 LWIP 在STM32上移植 http://www.docin.com/p-459242028 ...
- microsoft的罗马帝国——浪潮之巅
其实开始读微软的这篇已经比较久了,从来学校的前一天晚上等车的时候就开始读了,直到今天才看完.嗯,微软的确是个帝国. 那就从头开始讲把,关于帝国的传奇都是比较长的故事呢.至于我的叙述水平和我的知识水平都 ...
- leetcode@ [62/63] Unique Paths II
class Solution { public: int uniquePathsWithObstacles(vector<vector<int>>& obstacleG ...
- STL学习系列一:STL(标准模板库)理论基础
STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间. STL的从广 ...
- php 接收 Content-Type 是 application/json的请求数据
工作中为其他公司编写了一个提供请求的接口,自己调试的时候是用form提交的,所以可以用$_POST取键接收方式,而对接联调的时候发现总是取不到数据,把$_POST整个序列化放入日志也是[] ,空的,于 ...
- Reactive native 项目创建失败如何处理
首先感谢党的英明决策. 一开始我总觉得Awesomeproject这个名字是固定的,和我有同感的同学请举手. 其实我们可以起任意的名字,执行native react init碰到的最大的问题是 npm ...
- Linux下修改Oracle监听地址
如果你的服务器换了ip怎么办? 如果你的服务器换了名字怎么办? 以前的小伙伴怎么办? 以前的老客户怎么办? 没关系,简单教你修改监听地址,老朋友随便找! 想要修改监听地址首先要找到两个文件,确定两样东 ...
- Java对MySQL数据库进行连接、查询和修改【转载】
一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection()方法,获得一个Connection对象. (3) 创 ...
- [VirtualBox] Install Ubuntu 14.10 error 5 Input/output error
After you download the VirtualBox install package and install it (just defualt setting). Then you sh ...
- [Node.js] Using npm link to use node modules that are "in progress"
It is some times convenient, even necessary, to make use of a module that you are working on before ...