基于AspectJ的注解方式进行AOP开发
-------------------siwuxie095
基于 AspectJ 的注解方式进行 AOP 开发
1、在
Spring 的核心配置文件中配置对象

2、在
Spring 的核心配置文件中通过命名空间 aop 开启
AspectJ 的自动代理

3、在增强类中使用注解完成
AOP 开发
4、AOP 注解如下:

5、具体实现
(1)编写一个被增强类
Book.java:
|
package com.siwuxie095.aop; //被增强类 public class Book { public System.out.println("----- add -----"); }
} |
(2)编写一个增强类
MyBook.java:
|
package com.siwuxie095.aop; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; /** * 增强类 * * 在增强类上使用注解 @Aspect * */ @Aspect public class MyBook { /** * 在方法上使用注解完成增强配置 * * 其中,value 可以省略不写 * * 即 @Before("execution(* com.siwuxie095.aop.Book.add(..))") */ @Before(value="execution(* com.siwuxie095.aop.Book.add(..))") public System.out.println("----- 前置增强 -----"); }
@AfterReturning(value="execution(* com.siwuxie095.aop.Book.add(..))") public System.out.println("----- 后置增强 -----"); }
@Around(value="execution(* com.siwuxie095.aop.Book.add(..))") public System.out.println("----- 环绕增强(方法之前) -----"); //执行被增强的方法 proceedingJoinPoint.proceed(); System.out.println("----- 环绕增强(方法之前) -----"); }
} |
(3)在配置文件中进行配置
applicationContext.xml:
|
<?xml <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 配置对象 --> <bean <bean <!-- 开启 AspectJ 的自动代理
通过配置织入 @Aspect 切面 --> <aop:aspectj-autoproxy></aop:aspectj-autoproxy> </beans> |
(4)编写一个测试类
TestAop.java:
|
package com.siwuxie095.aop; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestAop {
/** * 手动加上 @Test 以进行单元测试(将自动导入 JUnit 4 的 jar 包) * * 选中方法名,右键->Run As->JUint Test */ @Test public
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
Book book=(Book) context.getBean("book");
book.add(); }
} |
(5)运行一览:

【made by siwuxie095】
基于AspectJ的注解方式进行AOP开发的更多相关文章
- 基于AspectJ的XML方式进行AOP开发
-------------------siwuxie095 基于 AspectJ 的 XML 方式进行 AOP 开发 1 ...
- AOP——基于AspectJ的注解来实现AOP操作
1.使用注解方式实现AOP操作 第一步:创建对象 <!-- 创建对象 --> <bean id="book" class="com.bjxb.aop.B ...
- Spring的AOP基于AspectJ的注解方式开发2
参考自黑马培训机构 上一篇博客提到了在配置文件中开启aop的注解开发,以及简单使用了@Before,@Aspect 这是为了告诉spring为前置通知和切面类 接下来介绍aop的注解的通知类型,和切入 ...
- Spring的AOP基于AspectJ的注解方式开发1
参考自黑马培训机构 创建项目,引入jar包 编写目标类,切面类并完成配置 package spring.day2_aop2; /* * 编写目标类 */ public class OrderDao { ...
- Spring的AOP基于AspectJ的注解方式开发3
上上偏博客介绍了@Aspect,@Before 上篇博客介绍了spring的AOP开发的注解通知类型:@Before,@AfterThrowing,@After,@AfterReturning,@Ar ...
- spring AOP (使用AspectJ的注解方式 的aop实现) (6)
目录 一.在 Spring 中启用 AspectJ 注解支持 二.AspectJ 支持 5 种类型的通知注解: 2.1.使用之前的 计算器接口和实现类 ArithmeticCalculator.jav ...
- Spring框架的事务管理之基于AspectJ的注解方式(重点掌握,最简单的方式)
1. 步骤一:恢复转账的开发环境(具体开发环境实现见:https://www.cnblogs.com/wyhluckdog/p/10137283.html)2. 步骤二:applicationCont ...
- 【AOP】操作相关术语---【Spring】的【AOP】操作(基于aspectj的xml方式)
[AOP]操作相关术语 Joinpoint(连接点):类里面哪些方法可以被增强,这些方法称为连接点. Pointcut(切入点):在类里面可以有很多的方法被增强,比如实际操作中,只是增强了类里面add ...
- (转)使用Spring的注解方式实现AOP的细节
http://blog.csdn.net/yerenyuan_pku/article/details/52879669 前面我们已经入门使用Spring的注解方式实现AOP了,现在我们再来学习使用Sp ...
随机推荐
- VBA文本型数字变成数值
sub test()with activesheet .usedrange.numberformatlocal="" .usedrange=.usedrange.valueen ...
- http接口测试工具——RESTClient
摘要: RESTClient是用java Swing编写的基于http协议的接口测试工具,工具比较灵巧,便于做接口的调试,源码在官网上可以下到,感兴趣的可以研究一下 WizTools.org REST ...
- 尽量少嵌套无用的div;外部文件尽量使用link而不要使用用@import
最近的工作又学到了很多东西,在这里记录一下. 1,尽量少嵌套无用的div,这个问题领导很严肃的跟我提过很多次,因为我很喜欢用很多div,而且有很多div都是无存在意义的.后来领导给了我一些资料,我看了 ...
- application/xml 和 text/xml的区别
application/xml and text/xml的区别 经常看到有关xml时提到"application/xml" 和 "text/xml"两种类型, ...
- Vue 组件以及生命周期函数
组件相当于母版的功能 新建.vue文件,手动完善 <template><div>根节点</div></template> <script>& ...
- reduce|sum
reduce() 函数会对参数序列中元素进行累积. 函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1.2 个 ...
- Poi对excel的基本操作
1.创建简单excel public static void main(String[] args) throws Exception { Workbook wb=new HSSFWorkbook() ...
- 异步与websocket
异步与WebSockets 知识点 理解同步与异步执行过程 理解异步代码的回调写法与yield写法 Tornado异步 异步Web客户端AsyncHTTPClient tornado.web.asyn ...
- 1. java获取本周日-本周六的时间
Calendar calendar = Calendar.getInstance(); String[] arrDate = new String[5]; String[] arrWeek = new ...
- 传统三层架构与DDD分层架构
参考 https://www.cnblogs.com/sandyliu1999/p/4969445.html