AcpectJ注释方式配置AOP
1.AspectJ的概念
  @AspectJ类似于Java注解的普通Java类
  Spring可以使用AspectJ来做切入点解析
  AOP的运行时仍旧是纯的Spring AOP,对AspectJ的编译器或者织入无依赖性.
2.配置方式
  注解方式 -- @Configuration
              @EnableAspectJAutoProxy
              任何拥有@Aspect注解的bean都将被Spring自动识别并应用
              注释的类可以有方法和字段,他们也可以有切入点(pointcut),通知(Advice)和引入(introduction)声明
              @Aspect注解不能够通过类路径自动检测发现,需要配合使用@Component注释或者在XML配置bean
  xml文件方式
           --<aop:aspectj-autoproxy/>
           
3.ASpectJ为编译期的AOP,检查代码并匹配连接点与切入点的代价昂贵
  好的切入点包括
    --选择特定类型的连接点(execution/get/set/call/handler)
    --确认连接点范围(within/withincode)
    --匹配上下文信息(this/target/@annotation)
    
4.Around advice
  使用@Around注释来声明,通知方法的第一个参数必须是ProcessdingJoinPoint类型
  再通知内部调用processdingjoinpoint的proceed()方法会引导至真正的方法,传入一个Object[]对象,数组中的值将被作为参数传递给方法
  
5. * 使用execution表达式
* 使用已经定义表达式的方法名 --@Before("pointcut()")
@AfterReturning(pointcut="implPointcut()",returning="args")
@AfterThrowing(pointcut="pointcut()",throwing="e")
@After("pointcut()")
      @Pointcut("execution(* com.aspectj.impl.*Impl.*(..))")
      @Pointcut("within(com.aspectj.impl.*)")
      
6.Advice扩展
  1>给advice传递参数 -- 方法的参数可以是任何类的对象
    在@before时+&&args(account,..)
    定义注解传参
        @Before("pointcut()&&@annotation(methodValue)")
        public void beforeWithAnnotation(Methodvalue methodValue)
    SpringAOp可以处理泛型类的声明和使用方法的参数
    通知和切入点注解有一个额外的"argNames"属性,它可以用来指定所注解的方法的参数名
    --如果第一参数时JoinPoint,ProceedingJoinPoint,JoinPoint.StaticPart,那么可以忽略它 -- -- ,argNames="bean,auditable,.."
  2>Introductions
    允许一个切面声明一个通知对象实现指定接口,并且提供了一个接口实现类来代表这些对象
    introduction使用@DeclareParents进行注解,这个注解用来定义匹配的类型拥有一个新的parent
  3>切面实例化模型 -- 高级主题
    "perthis"切面通过指定@Aspect注解perthis子句实现
    每个独立的service对象执行时都会创建一个切面实例
    service对象的每个方法在第一次执行的时候创建切面实例,切面在service对象失效的同时失效
    
http://blog.csdn.net/jacxuan/article/details/53454819
AcpectJ注释方式配置AOP的更多相关文章
- 基于配置文件的方式配置AOP
		
之前说的都是通过注释的方式配置,接下来说说如何使用配置文件配置AOP 还是原来的代码,去掉所有注释,接下来配置最基本的几个bean. 然后使用<aop:config>标签进行配置,然后配切 ...
 - xml的方式配置AOP:Aspect Oriented Programming
		
在某些类中, 什么时机, 做什么事情 切入点(point-cut): 在某些类中(Class<?>[] itfc = new Class<?>[] { IStudentServ ...
 - Spring_基于配置文件的方式配置AOP
		
applicationContext-xml.xml <?xml version="1.0" encoding="UTF-8"?> <bean ...
 - 22Spring基于配置文件的方式配置AOP
		
直接看代码: package com.cn.spring.aop.impl; //加减乘除的接口类 public interface ArithmeticCalculator { int add(in ...
 - Annotation方式配置AOP
		
package com.xk.spring.kp04_aop.aop.s02_annotation; public interface IStudentService { public void sa ...
 - spring-AOP框架(基于配置文件的方式配置AOP)
		
.xml: ref-指向,order-指定优先级
 - SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP
		
AOP(Aspect Oriented Programming),是面向切面编程的技术.AOP基于IoC基础,是对OOP的有益补充. AOP之所以能得到广泛应用,主要是因为它将应用系统拆分分了2个部分 ...
 - Spring(二十):Spring AOP(四):基于配置文件的方式来配置 AOP
		
基于配置文件的方式来配置 AOP 前边三个章节<Spring(十七):Spring AOP(一):简介>.<Spring(十八):Spring AOP(二):通知(前置.后置.返回. ...
 - spring aop注解方式与xml方式配置
		
注解方式 applicationContext.xml 加入下面配置 <!--Spring Aop 启用自动代理注解 --> <aop:aspectj-autoproxy proxy ...
 
随机推荐
- win8启用.net framework3.5方法
			
管理员命令下执行dism.exe /online /enable-feature /featurename:NetFX3 /Source:L:\sources\sxs
 - Flash Builder 4.7 完美破解
			
1. 准备安装文件和序列号生成器1Adobe Flash Builder 4.7 的安装文件可以从以下两个连接下载到:•32bit:http://trials3.adobe.com/AdobeProd ...
 - MFC 获得各类指针、句柄的方法(转)
			
原文转自 https://blog.csdn.net/abcjennifer/article/details/7480019 1.MFC中获取常见类句柄<视图类,文档类,框架类,应用程序类> ...
 - MFC 实现打印机打印功能
			
Visual C++6.0是开发Windows应用程序的强大工具,但是要通过它实现程序的打印功能,一直是初学者的一个难点,经常有朋友询问如何在VC中实现打印功能,他们往往感到在MFC提供的框架内实现这 ...
 - Windows下VS2013创建与使用动态链接库(.dll)
			
一.创建动态链接库文件 ** 1.打开VS2013,选择文件,新建工程 2.选择新建W32控制台应用程序,这里将工程名改为makeDLL 3.在应用程序类型中选择DLL,点击完成 4.完成以上步 ...
 - Uva 10158 War
			
并查集的应用 直接阔成2倍.后N项为对应的敌人 #include <map> #include <set> #include <list> #include < ...
 - 为何url地址不是直接发送到服务器,而是被编码后再发送
			
首先,先说一下,关于为何必须将url地址,去编码后,再发送,是因为相关的协议规范:RFC 1738,定义了url地址中不能包含除了0-9的数字,大小写字母(a-zA-Z),短横线’-‘ 之外的字母.换 ...
 - Fiddler抓包1-抓firefox上https请求【转载】
			
本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/p/6538021.html 前言 fiddler是一个很好的抓包工具,默认是抓http请求的, ...
 - Codeforces 897 B.Chtholly's request-思维题(处理前一半)
			
B. Chtholly's request time limit per test 2 seconds memory limit per test 256 megabytes input st ...
 - Codeforces 946G  Almost Increasing Array (树状数组优化DP)
			
题目链接 Educational Codeforces Round 39 Problem G 题意 给定一个序列,求把他变成Almost Increasing Array需要改变的最小元素个数. ...