AspectJ基础学习之三HelloWorld(转载)
一、创建项目
我们将project命名为:aspectjDemo。然后我们新建2个package:com.aspectj.demo.aspect 和 com.aspectj.demo.test
前者用来方apsect。后者用来放测试类。如果你仔细的话,你会发现Aspectj的项目上面有个AJ的标志。
二、创建Aspect
首先我们创建HelloWorld.java。他包含main()方法,但是没有方法体,代码如下:
- package com.aspectj.demo.test;
- public class HelloWorld {
- /**
- * @param args
- */
- public static void main(String[] args) {
- }
- }
接下来创建一个Aspectj。我们命名为:HelloAspect,其后缀名我:.aj 。这里千万别习惯性就New --->Class了哦~切记。接下来我们编写这个aspect的内容。
- package com.aspectj.demo.aspect;
- public aspect HelloAspect {
- pointcut HelloWorldPointCut() : execution(* com.aspectj.demo.test.HelloWorld.main(..));
- before() : HelloWorldPointCut(){
- System.out.println("Hello world");
- }
- }
三、运行结果于分析
运行HelloWorld,你会发现打印了Hello world.
另外不知道你发现没有在Line Number那里现实的深色的箭头? 移上去,看看他说什么? advices HelloWorld.main(String[])。 意思是说:横切了HelloWorld的main(String[])方法。
同样在HelloWorld这边也有箭头,这是箭头的方向不同。鼠标移上去,读读上面的提示吧。~
从这个demo我们可以看出,Aspectj真的是很简单,就如第一章他的自我介绍一样:易学易用,而且不侵入。不需要继承任何类和接口。 只要编写一个pointcut和 advice就ok了。
AspectJ基础学习之三HelloWorld(转载)的更多相关文章
- AspectJ基础学习之二搭建环境(转载)
AspectJ基础学习之二搭建环境(转载) 一.下载Aspectj以及AJDT 上一章已经列出了他的官方网站,自己上去download吧.AJDT是一个eclipse插件,开发aspectj必装,他可 ...
- AspectJ基础学习之一简介(转载)
AspectJ基础学习之一简介(转载) 一.为什么写这个系列的博客 Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/ ...
- Java基础学习之HelloWorld(2)
前言 学习一门新的编程语言永远逃脱不了一场Hello World. 1.第一个程序 1.1.磁盘中新建一个文件 这里我们需要将文件后缀名显示出来,就是文件格式. 打开控制面板,取消隐藏已知文件类型的扩 ...
- 【零基础学习iOS开发】【转载】
原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开 ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
- C++11并发学习之三:线程同步(转载)
C++11并发学习之三:线程同步 1.<mutex> 头文件介绍 Mutex又称互斥量,C++ 11中与 Mutex 相关的类(包括锁类型)和函数都声明在 <mutex> 头文 ...
- 怎么规划一个零基础学习Unity3D的“方法”或者“流程”?
具体出处:https://www.zhihu.com/question/35542990 我只是一个计算机相关专业毕业的,已经掌握了基础的C#并开发过.net的.目前突然心血来潮对unity3D有兴趣 ...
- 如何从零基础学习VR
转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...
- qml基础学习 Canvas画笔
一.画布元素 自qt4.7发布qml以来,qml也在一直不断的完善中,在qt4时代使用qml时如果需要异形图,那我们只能让设计师来切图,这样的感觉是很不爽的,总感觉开发没有那么犀利.但是到了qt5这一 ...
随机推荐
- 网络设计中需要考虑的时延latency差异
Jeff Dean提到不同数据访问方式latency差异 Numbers Everyone Should Know L1 cache reference 0.5 ns Branch mispredic ...
- android图片的异步加载和双缓存学习笔记——DisplayImageOptions (转)
转的地址:http://hunankeda110.iteye.com/blog/1897961 1 //设置图片在下载期间显示的图片 2 showStubImage(R.drawable.ic_lau ...
- mysql 表被锁处理方案
1. 查询锁表信息 当前运行的所有事务 select * from information_schema.innodb_trx 当前出现的锁 select * from information_sch ...
- Cannot change version of project facet Dynamic Web Module to 3.1
最近项目一直报错,看的极度的不爽,于是找了很长时间的解决方案. 先说一下环境Spring + SpringMVC + MAVEN + jdk 1.8 + servlet 3.1 由于是web 项目,这 ...
- java-二维码编写zxing
zxing 这个是google的 下载地址 http://code.google.com/p/zxing/downloads/list 二维码源码案例 package com.utils; impor ...
- RFID标签
定义: RFID无线射频识别是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境.RFID技术可识别高速运动物体并可同时识别多个电子标 ...
- 数据库开发基础 SQL Server 数据库的备份、还原与分离、附加
认识数据库备份和事务日志备份 数据库备份与日志备份是数据库维护的日常工作,备份的目的是 一.在于当数据库出现故障或者遭到破坏时可以根据备份的数据库及事务日志文件还原到最近的时间点将损失降到最低点 二. ...
- awk打印出当前行的上一行
#awk '/B/{print a;}{a=$0}' a.txt A # cat a.txt A BCDE
- java.lang.Exception: No runnable methods
java.lang.Exception: No runnable methods at org.junit.runners.BlockJUnit4ClassRunner.validateInstanc ...
- 【UVALive 4642】Malfatti Circles(圆,二分)
题 给定三角形,求三个两两相切且与三角形的一条边相切的圆的半径. 二分一个半径,可以得出另外两个半径,需要推一推公式(太久了,我忘记了) #include<cstdio> #include ...