AspectJ的简单使用
aspectj是一款优秀的面向切面的编程框架,下面就简单介绍一下入门教程吧:
1、官网下载AspectJ的jar包,我这里下的是最新版本1.8.7的。
2、因为AspectJ.jar 是一个可执行的jar文件,需要运行安装
进入jar所在目录,输入命令 java -jar ***.jar:

3、进入安装:

4、选择next,会有如下提示,默认选择电脑所安装的jre:

5、选择next,然后选择安装的目录,自己得记住该目录,到后面有用:

6、安装完成后,有提示将lib中aspectjrt.jar添加进入classpath;
进入安装的目录,里面有将要用的jar包库lib文件夹和包含可运行文件的bin文件夹:

添加aspectjrt.jar添加进入classpath:

7、进行aspectj的简单测试:
(1)编写测试所需要的类:A 、B 和主类Main:
public class A
{
public void hello(){
System.out.println("测试第一个实例第一个方法");
} public void Hi(){
System.out.println("测试第一个实例第二个方法");
} }
public class B
{
public void greet(){
System.out.println("测试的第二个类第一个方法");
}
}
public class Main
{
public static void main(String[] args)
{
A a = new A();
B b = new B(); a.hello();
a.Hi(); b.greet();
}
}
查看编译执行的效果:

(2)编写要添加进入目的函数的aspect:
第一个:
public aspect AuthAspect
{
before():execution(void *.*()){ System.out.println("模拟记录日志");
}
}
用bin文件夹中的ajc编译AuthAspect,-d . *.java编译当前目录所有java文件把编译后的文件放在当前目录下:

第二个:
public aspect TransAspect
{
void around():execution(void *.*()){ System.out.println("模拟事物开始"); proceed();//回调函数 System.out.println("模拟事物结束");
}
}

第三个:
public aspect LogAspect
{
after():execution(void *.*()){ System.out.println("******模拟******");
}
}

AspectJ的简单使用的更多相关文章
- spring-第十五篇之AOP面向切面编程之AspectJ框架简单应用
1.去官方网站下载aspectj-1.8.0.jar 2.在jar包目录启动cmd,执行java -jar aspectj-1.8.0.jar,Next 3.检查JAVA_HOME路径是否正确,如果不 ...
- SpringAOP-基于@AspectJ的简单入门
一.AOP的基本概念: 连接点(Jointpoint):表示需要在程序中插入横切关注点的扩展点,连接点可能是类初始化.方法执行.方法调用.字段调用或处理异常等等,Spring只支持方法执行连接点,在A ...
- Android埋点方案的简单实现-AOP之AspectJ
个人博客 http://www.milovetingting.cn Android埋点方案的简单实现-AOP之AspectJ AOP的定义 AOP为Aspect Oriented Programmin ...
- Comparing Spring AOP and AspectJ
AOP 概念 在我们开始之前 , 让我们做一个快速.高级别审查的核心术语和概念 : 方面 — —标准 / 特征代码被分散在多个场所中的应用 , 通常不同于实际的业务逻辑 (例如 , 交易管理) .各方 ...
- 关于 Spring AOP (AspectJ) 该知晓的一切
关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切 本篇是年后第一篇博文,由于博主用了不少时间在构思这篇博文,加上 ...
- AspectJ入门
AOP的实现方式有两种: AOP框架在编译阶段,就对目标类进行修改,得到的class文件已经是被修改过的.生成静态的AOP代理类(生成*.class文件已经被改掉了,需要使用特定的编译器).以Aspe ...
- 关于 Spring AOP (AspectJ) 你该知晓的一切
版权声明:本文为CSDN博主「zejian_」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/javazej ...
- (转)Spring AOP实现方式(转)
我们可以通过三种方式来使用Spring AOP,它们分别是:@Aspect-based(Annotation),Schema-based(XML),以及底层的Spring AOP API 底层的Spr ...
- Spring AOP 实现原理与 CGLIB 应用
https://www.ibm.com/developerworks/cn/java/j-lo-springaopcglib/ AOP(Aspect Orient Programming),也就是面向 ...
随机推荐
- 三分钟掌握 JUnit3.0
曾经公司做过一个.net的项目,在项目开发的过程中.我们採用的是分层的开发方式,大家先在一起讨论接口, 然后讨论完以后,形成文档,然后依照文档进行开发!这样就有一个问题,你必需要保证你的接口是正确的. ...
- SimpleTagImageView
https://github.com/wujingchao/SimpleTagImageView SimpleTagImageView ImageView with a tag in android. ...
- Android游戏开发之主角的移动与地图的平滑滚动
人物移动地图的平滑滚动处理 玩过rpg游戏的朋友应该都知道RPG的游戏地图一般都比较大 今天我和大家分享一下在RPG游戏中如何来处理超出手机屏幕大小的游戏地图. 如图所示为程序效果动画图 地图滚动的原 ...
- [MODX] 1. Template *
After uploading javascript, css and images to the assets folder. We try to use Template to customize ...
- 在一个文件中有10G个整数,乱序排列,要求找出中位数
题目:在一个文件中有 10G 个整数,乱序排列,要求找出中位数.内存限制为 2G.只写出思路即可(内存限制为 2G的意思就是,可以使用2G的空间来运行程序,而不考虑这台机器上的其他软件的占用内存). ...
- Linq 用法笔记
Linq中怎么用 between…and? var query = from p in context.Parent from c in context.Child.Where(x => p.c ...
- swift基本数据类型的使用
// // ViewController.swift // 基本数据类型 // // Created by 叶炯 on 16/9/8. // Copyright © 2016年 叶炯. All rig ...
- 为MYPoint类写一个分类
#import <Foundation/Foundation.h> //xieyi @protocol showOn @required -(void)printOn; @end // l ...
- poj 2373 单调队列优化背包
思路:我们用单调队列保存2*b<=i-j<=2*a中的最大值.那么队列头就是最大值,如果队头的标号小于i-2*b的话,就出队,后面的肯定用不到它了. #include<iostrea ...
- python中提示invalid syntax 总结
记录语法错误的坑 1.陷进1,使用notepad++,格式显示与实际不相匹配,报invalid syntax 错误 使用文本格式执行一个文件,一直提示 找原因,因为写文件时一直是用的文本文件写的代码, ...