欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

java基于AspectJ(面向切面编程)编码示例分享

时间:2021-06-02 08:20:35|栏目:JAVA代码|点击:

一、基本概念

AspectJ是一种面向切面程序设计的基于Java 的实现。它向 Java 中加入了连接点(Join Point)这个新概念,其实它也只是现存的一个 Java概念的名称而已。它向 Java 语言中加入少许新结构:切点(pointcut)、通知(Advice)、类型间声明(Inter-type declaration)和方面(Aspect)。切点和通知动态地影响程序流程,类型间声明则是静态的影响程序的类等级结构,而切面则是对所有这些新结构的封装。

基于切面、连接点、切点、通知的概念如下:

Aspect: Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。
Joint point:表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。
Pointcut:表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方。
Advice:Advice 定义了在 pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint point 之前、之后还是代替执行的代码。
连接点是程序流中适当的一点。切点收集特定的连接点集合和在这些点中的值。一个通知是当一个连接点到达时执行的代码,这些都是 AspectJ的动态部分。其实连接点就好比是程序中的一条一条的语句,而切点就是特定一条语句处设置的一个断点,它收集了断点处程序栈的信息,而通知就是在这个断点前后想要加入的程序代。AspectJ 中也有许多不同种类的类型间声明, 这就允许程序员修改程序的静态结构、 名称、 类的成员以及类之间的关系。AspectJ 中的方面是横切关注点的模块单元。它们的行为与 Java语言中的类很象,但是方面还封装了切点、通知以及类型间声明

二、如何基于AJDT: AspectJ Development Tools进行AOP程序的开发?

按照ajdt网站上的说明,在eclipse中安装ajdt插件http://www.eclipse.org/ajdt/
创建AspectJ Project项目
进行代码开发(本文提供一个简单的示例)

三、简单示例:

复制代码 代码如下:

package aop.test;

public interface FigureElement {
 public void setXY(int x,int y);
 public void draw();
}

复制代码 代码如下:

package aop.test;

public class Point implements FigureElement {

 public int x;
 private int y;

 public int getX() {
  return x;
 }

 public String setX(int x) {
  System.out.println("设置x值:x="+x);
  this.x = x;
  return "返回值是x="+x;
 }

 public int getY() {
  return y;
 }

 public void setY(int y) {
  this.y = y;
 }

 public Point(){

 }

 public Point(int x,int y){
  this.x=x;
  this.y=y;
 }

 @Override
 public void setXY(int x,int y) {
  this.x=x;
  this.y=y;
  System.out.println("Point setXY: x="+x+",y="+y);
 }

 @Override
 public void draw() {
  System.out.println("Point draw");
 }

 @Override
 public String toString(){
  return "Point: x="+x+",y="+y;
 }
}

上一篇:Mybatis批量插入更新xml方式和注解方式的方法实例

栏    目:JAVA代码

下一篇:JavaWe商品项目保姆级解析IDEA版的图文教程(配置篇)

本文标题:java基于AspectJ(面向切面编程)编码示例分享

本文地址:http://www.codeinn.net/misctech/133597.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有