spring ----> aop的两种实现方式
实现1:基于xml
package com.rr.spring3.interf; //接口
public interface SayHello {
public void sayHello();
}
package com.rr.spring3.interf.impl; //接口实现类
import com.rr.spring3.interf.SayHello;
public class Hello implements SayHello {
public void sayHello() {
System.out.println("hello");
}
}
package com.rr.spring3.aop;//切面类+通知
public class HelloAspect {
// 前置通知
public void beforeAdvice() {
System.out.println("===========before advice");
}
// 后置最终通知
public void afterFinallyAdvice() {
System.out.println("===========after finally advice");
}
}
<!-- 目标类 -->
<bean id="hello" class="com.rr.spring3.interf.impl.Hello"/>
<!-- 切面类 -->
<bean id="helloAspect" class="com.rr.spring3.aop.HelloAspect"/>
<aop:config>
<!-- 引用切面类 -->
<aop:aspect ref="helloAspect">
<!-- 切入点 -->
<aop:pointcut id="pc" expression="execution(* com.rr.spring3.interf.*.*(..))"/>
<!-- 引用切入点 ,指定通知-->
<aop:before pointcut-ref="pc" method="beforeAdvice"/>
<aop:after pointcut="execution(* com.rr.spring3.interf.*.*(..))" method="afterFinallyAdvice"/>
</aop:aspect>
</aop:config>
实现2:基于java5 注解 @Aspect
接口和接口实现类同上
package com.rr.spring3.aop; //切面类+通知
import org.aspectj.lang.annotation.After; //基于 java5 注解
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class HelloAspect {
@Pointcut("execution(* com.rr.spring3.interf.*.*(..))")
private void selectAll() {}
// 前置通知
@Before("selectAll()")
public void beforeAdvice() {
System.out.println("===========before advice");
}
// 后置最终通知
@After("selectAll()")
public void afterFinallyAdvice() {
System.out.println("===========after finally advice");
}
}
<aop:aspectj-autoproxy/> <!-- 开启注解 --> <!-- 目标类 --> <bean id="hello" class="com.rr.spring3.interf.impl.Hello"/> <!-- 切面类 --> <bean id="helloAspect" class="com.rr.spring3.aop.HelloAspect"/>
测试结果:

note:
v1.0.1:
①第二种方法是aspectjweaver jar包的注解

spring ----> aop的两种实现方式的更多相关文章
- (一)spring aop的两种配置方式。
sring aop的方式有两种:(1)xml文件配置方式(2)注解的方式实现,我们可以先通过一个demo认识spring aop的实现,然后再对其进行详细的解释. 一.基于注解的springAop配置 ...
- spring AOP的两种配置方式
连接点(JoinPoint) ,就是spring允许你是通知(Advice)的地方,那可就真多了,基本每个方法的前.后(两者都有也行),或抛出异常是时都可以是连接点,spring只支持方法连接点.其他 ...
- JAVA高级架构师基础功:Spring中AOP的两种代理方式:动态代理和CGLIB详解
在spring框架中使用了两种代理方式: 1.JDK自带的动态代理. 2.Spring框架自己提供的CGLIB的方式. 这两种也是Spring框架核心AOP的基础. 在详细讲解上述提到的动态代理和CG ...
- spring AOP的两种代理
本篇记录下spring AOP的两种代理,为下一篇AOP实现做下铺垫. 1.JDK动态代理 2.cglib代理 1.如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP2.如果目标对象 ...
- AOP的两种实现方式
技术交流群 :233513714 AOP,面向切面编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术. Aspect Oriented Progr ...
- Spring定时器的两种实现方式
有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz. 1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 imp ...
- spring aop的两种写法aspect和advisor
本文转自:https://www.cnblogs.com/leiOOlei/p/3709607.html 首先看个例子,如下 接口代码: package com.lei.demo.aop.schema ...
- 使用aspectJ实现Spring AOP的两种方式
方式一:基于aspectJ的XML配置 方式二:基于aspectJ的注解方式 基于aspectJ的XML配置 1) 引入相关jar包 2) 创建Spring核心配置文件,必须导 ...
- Spring中AOP的两种代理方式(Java动态代理和CGLIB代理)
第一种代理即Java的动态代理方式上一篇已经分析,在这里不再介绍,现在我们先来了解下GCLIB代理是什么?它又是怎样实现的?和Java动态代理有什么区别? cglib(Code Generation ...
随机推荐
- darknet中的若干问题
2018-04-20: https://github.com/pjreddie/darknet/issues/717 改了一下午,然后/usr/include/c++/4.8/bits/stl_rel ...
- undefined reference to `vtable for MyColor'
MyColor是新建的类,原因是使用了QObject,但是系统没有反应过来 解决:从工程删除,再添加进去[QtCreator]
- Java基础——javaMail:使用心得
想要做一个java发送邮件小功能. 使用的maven搭建的项目. <!-- https://mvnrepository.com/artifact/javax.mail/mail -->&l ...
- 【做题】uoj#370滑稽树上滑稽果——巧妙dp
一个显然的结论是最终树的形态必然是一条链.具体证明只要考虑选定树上的某一条链,然后把其他部分全部接在它后面,这样答案一定不会变劣. 那么,一开始的想法是考虑每一位的最后出现位置,但这并不容易实现.注意 ...
- [quartz] - Cron表达式举例
Quartz是一个任务调度框架.比如你遇到这样的问题 想每月25号,信用卡自动还款 想每年2月14日自己给当年暗恋女神发一封匿名贺卡 想每隔1小时,备份一下自己的SpringCloud学习笔记到云盘 ...
- MongoDB 基本语法笔记
MongoDB常识 MongoDB Shell是MongoDB自带的交互式Javascript shell,所以可直接执行JS脚本,用来对MongoDB进行操作和管理的交互式环境. ObjectId: ...
- pgAdmin的数据导入之CSV
在向数据库批量导入数据时,可以参考此过程 1.对于现有的Excel文件,首先应另存为 .csv文件,记住分割符(逗号分割),在后边导入用到. 2.用记事本打开保存后的csv文件,以utf-8格式另存为 ...
- 51nod P1305 Pairwise Sum and Divide ——思路题
久しぶり! 发现的一道有意思的题,想了半天都没有找到规律,结果竟然是思路题..(在大佬题解的帮助下) 原题戳>>https://www.51nod.com/onlineJudge/ques ...
- eclipse安装spring boot插件spring tool suite
进行spring cloud的学习,要安装spring boot 的spring -tool-suite插件,我在第一次安装时,由于操作不当,两天才完全安装好,真的是要命了,感觉自己蠢死!下面就自己踩 ...
- spring-tool-suite使用教程,并创建spring配置文件
本文为博主原创,未经允许不得转载: 在应用springMVC框架的时候,每次创建spring的xml配置文件时,需要很多步骤,非常麻烦. 所以spring提供了spring-tool-suite插件, ...