AspectJ基础学习之三HelloWorld(转载)

一、创建项目

   

我们将project命名为:aspectjDemo。然后我们新建2个package:com.aspectj.demo.aspect  和 com.aspectj.demo.test

前者用来方apsect。后者用来放测试类。如果你仔细的话,你会发现Aspectj的项目上面有个AJ的标志。

二、创建Aspect

   首先我们创建HelloWorld.java。他包含main()方法,但是没有方法体,代码如下:

    

  1. package com.aspectj.demo.test;
  2. public class HelloWorld {
  3. /**
  4. * @param args
  5. */
  6. public static void main(String[] args) {
  7. }
  8. }

接下来创建一个Aspectj。我们命名为:HelloAspect,其后缀名我:.aj 。这里千万别习惯性就New --->Class了哦~切记。接下来我们编写这个aspect的内容。

   

  1. package com.aspectj.demo.aspect;
  2. public aspect HelloAspect {
  3. pointcut HelloWorldPointCut() : execution(* com.aspectj.demo.test.HelloWorld.main(..));
  4. before() : HelloWorldPointCut(){
  5. System.out.println("Hello world");
  6. }
  7. }

三、运行结果于分析

  运行HelloWorld,你会发现打印了Hello world.

  另外不知道你发现没有在Line Number那里现实的深色的箭头? 移上去,看看他说什么? advices HelloWorld.main(String[])。 意思是说:横切了HelloWorld的main(String[])方法。

  同样在HelloWorld这边也有箭头,这是箭头的方向不同。鼠标移上去,读读上面的提示吧。~

  从这个demo我们可以看出,Aspectj真的是很简单,就如第一章他的自我介绍一样:易学易用,而且不侵入。不需要继承任何类和接口。 只要编写一个pointcut和 advice就ok了。

AspectJ基础学习之三HelloWorld(转载)的更多相关文章

  1. AspectJ基础学习之二搭建环境(转载)

    AspectJ基础学习之二搭建环境(转载) 一.下载Aspectj以及AJDT 上一章已经列出了他的官方网站,自己上去download吧.AJDT是一个eclipse插件,开发aspectj必装,他可 ...

  2. AspectJ基础学习之一简介(转载)

    AspectJ基础学习之一简介(转载) 一.为什么写这个系列的博客   Aspectj一个易用的.功能强大的aop编程语言.其官网地址是:http://www.eclipse.org/aspectj/ ...

  3. Java基础学习之HelloWorld(2)

    前言 学习一门新的编程语言永远逃脱不了一场Hello World. 1.第一个程序 1.1.磁盘中新建一个文件 这里我们需要将文件后缀名显示出来,就是文件格式. 打开控制面板,取消隐藏已知文件类型的扩 ...

  4. 【零基础学习iOS开发】【转载】

    原文地址:http://www.cnblogs.com/mjios/archive/2013/04/24/3039357.html 本文目录 一.什么是iOS 二.主流手机操作系统 三.什么是iOS开 ...

  5. 转载-java基础学习汇总

    共2页: 1 2 下一页  Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3     Java基础学习总结——Java对象的序列化和 ...

  6. C++11并发学习之三:线程同步(转载)

    C++11并发学习之三:线程同步 1.<mutex> 头文件介绍 Mutex又称互斥量,C++ 11中与 Mutex 相关的类(包括锁类型)和函数都声明在 <mutex> 头文 ...

  7. 怎么规划一个零基础学习Unity3D的“方法”或者“流程”?

    具体出处:https://www.zhihu.com/question/35542990 我只是一个计算机相关专业毕业的,已经掌握了基础的C#并开发过.net的.目前突然心血来潮对unity3D有兴趣 ...

  8. 如何从零基础学习VR

    转载请声明转载地址:http://www.cnblogs.com/Rodolfo/,违者必究. 近期很多搞技术的朋友问我,如何步入VR的圈子?如何从零基础系统性的学习VR技术? 本人将于2017年1月 ...

  9. qml基础学习 Canvas画笔

    一.画布元素 自qt4.7发布qml以来,qml也在一直不断的完善中,在qt4时代使用qml时如果需要异形图,那我们只能让设计师来切图,这样的感觉是很不爽的,总感觉开发没有那么犀利.但是到了qt5这一 ...

随机推荐

  1. PagerAdapter 用法

    PagerAdapter简介 PagerAdapter是android.support.v4包中的类,它的子类有FragmentPagerAdapter, FragmentStatePagerAdap ...

  2. svn 的备份还原

    备份脚本如下: #!/bin/bash ############################################################################### ...

  3. 【HDU 5810多校】Balls and Boxes(打表/数学)

    1.打表找规律,下面是打表程序: #include <iostream> #include <cstdio> #define ll long long #define N 10 ...

  4. MyEclipse项目上有个感叹号

    如图: 然后把有叉的选项移除就可以了

  5. ECIF OCRM ACRM关系

    ECIF  :Enterprise Customer Information Facility 企业客户信息工厂: CRM:Customer Relationship Management 客户关系管 ...

  6. css-css权威指南学习笔记3

    第三章 结构和层叠 1.确定应向一个元素应用哪些值时,用户代理不仅要考虑继承,还要考虑声明的特殊性,另外需要考虑声明本身的来源,这个过程就称为层叠.. 2.特殊性.如果一个元素有两个或多个冲突的属性声 ...

  7. Leetcode 110. Balanced Binary Tree

    Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary ...

  8. codeforces 723A : The New Year: Meeting Friends

    Description There are three friend living on the straight line Ox in Lineland. The first friend live ...

  9. 洛谷P3128 [USACO15DEC]最大流Max Flow [倍增LCA]

    题目描述 Farmer John has installed a new system of  pipes to transport milk between the  stalls in his b ...

  10. UVa 1328 Period

    数据范围较大,故用KMP求循环节 之后由小到大枚举长度范围,若该长度下有循环节就输出答案 还要注意输出格式.之前测试时候连着一串presentation error也是悲伤 #include<b ...