hook 与aspectj_将AspectJ与NetBeans平台开发集成

hook 与aspectj

您是否正在使用NetBeans平台开发项目? 您愿意使用AspectJ来使用AOP吗? 您不知道如何将AspectJ编译器集成到NetBeans的内部版本中?

如果您的回答是“是”,则此帖子适合您。

我决定写这篇技术文章,是因为我在寻找该解决方案之前一直很费力,所以我想分享一下。

讲故事

以前,我不得不面对将AspectJ集成到使用NetBeans Platform源代码实现的Rich Client Application中的问题。 做出的第一个决定是在编译级别集成AspectJ,以便创建包含AOP的已编译源代码。

主要问题是,如何将此后编译与netbeans ant编译文件集成在一起。

解决方案

首先让我们确定必须修改的文件:

  1. common.xml:位于NetBeans安装的线束文件夹中
  2. project.properties:包含必须用AspectJ编译的源代码的模块的

第1步

下载AspectJ库,并将它们放在NetBeans安装的“ harness”文件夹内的文件夹中。 假设此文件夹名为:aspectj-xxx / lib。

第2步

进入包含要与AspectJ一起编译的源代码的模块,并在其project.properties文件(在重要文件中)中添加以下行:

aspectjcompiler=required

第三步

现在是时候配置common.xml文件了。 启动构建操作时,NetBeans IDE调用的ant目标实际上位于此位置。

该示例是使用NetBeans 7.3.1完成的,但是对于以前或将来的更改差异很小。 修改以蓝色突出显示。

更改目标编译,如下所示:

<target name=”compile-nb-javac” depends=”init,up-to-date” unless=”is.jar.uptodate”>
<mkdir dir=”${build.classes.dir}”/>
<depend srcdir=”${src.dir}” destdir=”${build.classes.dir}” cache=”${build.dir}/depcache”>
<classpath refid=”cp”/>
</depend>
<nb-javac srcdir=”${src.dir}” destdir=”${build.classes.dir}” debug=”${build.compiler.debug}” debuglevel=”${build.compiler.debuglevel}” encoding=”UTF-8″
deprecation=”${build.compiler.deprecation}” optimize=”${build.compiler.optimize}” source=”${javac.source}” target=”${javac.target}” includeantruntime=”false”>
<classpath refid=”cp”/>
<compilerarg line=”${javac.compilerargs}”/>
<processorpath refid=”processor.cp”/>
</nb-javac>
<copy todir=”${build.classes.dir}”>
<fileset dir=”${src.dir}” excludes=”${jar-excludes}”/>
</copy>
</target>

添加一个新的目标编译 ,如下所示:

<target name=”compile” depends=”init,up-to-date” unless=”is.jar.uptodate”>
<mkdir dir=”${build.classes.dir}”/>
<depend srcdir=”${src.dir}” destdir=”${build.classes.dir}” cache=”build/depcache”>
<classpath refid=”cp”/>
</depend>
<antcall target=”compile-nb-javac” inheritAll=”true” />
<antcall target=”compile-aspectj” inheritAll=”true” />
</target>

添加新的目标compile-aspectj,如下所示:

<target name=”compile-aspectj” depends=”init,up-to-date” unless=”is.jar.uptodate” if=”aspectjcompiler”>
<property name=”cpProperty” refid=”cp”/>
<property name=”aspectj.lib.dir” location=”${harness.dir}/aspectj-x.x.x/lib”/>
<property name=”aspectjtools.jar” location=”${aspectj.lib.dir}/aspectjtools.jar”/>
<property name=”aspectjrt.jar” location=”${aspectj.lib.dir}/aspectjrt.jar”/>
<taskdef resource=”org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties”>
<classpath>
<pathelement path=”${aspectjtools.jar}”/>
</classpath>
</taskdef>
<iajc destdir=”${build.classes.dir}” source=”${javac.source}” fork=”true”
forkclasspath=”${aspectjtools.jar}” classpath=”${aspectjrt.jar};${cpProperty}”
failonerror=”false” >
<sourceroots>
<pathelement location=”${src.dir}”/>
</sourceroots>
</iajc>
</target>

结论

现在,当您进行清理和构建时,您会看到所选模块的源代码在正常编译之后立即针对AspectJ编译器进行了编译。

您需要确保的是,方面和必须使用其进行编译的源代码都在同一模块中。

参考: Refactoring Ideas博客上的JCG合作伙伴 Marco Di Stefano 将AspectJ与NetBeans平台开发集成 。

翻译自: https://www.javacodegeeks.com/2013/10/integrate-aspectj-with-netbeans-platform-development.html

hook 与aspectj

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

考试用计算机反思800字,考试反思作文800字

【考试】作者&#xff1a; 武佳硕2017年 5月6日 星期六 晴今天我们进行了一场在英华初中免费生考试前测试。虽然这次考试&#xff0c;不会算我们的真实成绩&#xff0c;但是老师要测我们的考试状态&#xff0c;一开始我还自信满满地认为我能考好&#xff0c;没想到我居然靠得一…

静茹docker容器的几种方法_1-容器和docker基础知识

[TOC]## 一 容器的概念### 1.什么是容器&#xff1a;容器是在隔离的环境里面运行的一个进程&#xff0c;这个隔离的环境有自己的系统目录文件&#xff0c;有自己的ip地址&#xff0c;主机名等。也可以说&#xff1a;容器是一种轻量级虚拟化的技术。### 2.容器相对于kvm虚拟机的…

JSON-B非对称属性绑定

JSON-B规范定义了诸如JsonbProperty或JsonbTransient类的绑定批注&#xff0c;以声明方式将Java对象映射到JSON&#xff0c;然后再映射回JSON。 这些注释可以“非对称地”用于定义序列化和反序列化的不同处理。 如果在Java属性上或在getter和setter上标注JSON Binding批注&…

怎么利用计算机计算潮流计算,电力系统潮流计算的目的是什么

电力系统潮流计算的目的是什么潮流计算是研究电力系统稳态运行情况的一种基本电气计算&#xff0c;常规潮流计算的任务是根据给定的运行条件和网路结构确定整个系统的运行状态&#xff0c;如各母线上的电压(幅值及相角)、网络中的功率分布以及功率损耗等。潮流计算的结果是电力…

7500 cpuz跑分 i5_小米Pro笔记本亮相跑分网站:处理器包含AMD Zen3、11代酷睿

2020年已经接近尾声&#xff0c;随之而来的将会是一大波新品发布会&#xff0c;不仅是手机&#xff0c;笔记本电脑、显卡等产品也会有新品亮相。一年一度的CES 2021也即将开幕&#xff0c;届时英特尔、英伟达、AMD等知名厂商也都将出席活动。据悉&#xff0c;英特尔将推出11代酷…

2016年计算机网考,2016年电大:计算机网考(全)练习题.doc

2016年电大&#xff1a;计算机网考(全)练习题用来给电子工作表中的行号进行编号的是______。数字在Excel中&#xff0c;输入数字作为文本使用时&#xff0c;需要输入作为先导标记的字符是______。单引号电子工作表中每个单元格的默认格式为______。常规不包含在Excel的格式工具…

2能不用cuda_洗洁精不用花钱买,自己在家就能做,成本2毛钱,比买的更好用

点击上面“妙招姐”免费关注图文版&#xff1a;哈喽大家好&#xff0c;我是妙招姐&#xff0c;洗洁精是我们生活中的必须品&#xff0c;但用洗洁精来清洗餐具或水果等和食物相关的东西多多少少都会有残留&#xff0c;那么今天妙招姐就来教大家用橘子皮来自己制作洗洁精&#xf…

Apache Ignite,Hazelcast,Cassandra和Tarantool之间的主要区别

Apache Ignite在世界范围内得到广泛使用&#xff0c;并且一直在增长。 诸如Barclays&#xff0c;Misys&#xff0c;Sberbank&#xff08;欧洲第三大银行&#xff09;&#xff0c;ING&#xff0c;JacTravel之类的公司都使用Ignite来增强其体系结构的各个部分&#xff0c;这些部分…

n.html id=198,YPE htmlhtml lang=enhead data-n-head-ssrtitle data-n-=true小程序获取不到unionid 微信开放社区...

我们的小程序和公众号绑定在同一开放平台&#xff0c;隶属于同一主体&#xff0c;新用户在经过公众号授权登陆后&#xff0c;在小程序的登陆接口获取的信息只有session_key和open_id&#xff0c;没有unionId&#xff0c;请问这是什么问题我们已经在用户登陆小程序之前进行了同一…

centos模拟post请求_java模拟post和get请求(2019/10/25)

一、http含义的介绍1.http协议是超文本传输协议--具体含义请百度2.基于tcp/ip协议--注意和udp的区别3.无状态---本次请求记不住以往请求的状态4.无连接--每次连接只处理一个请求5.媒体独立二、请求报文的组成部分请求行 请求方式 请求url http协议版本请求头关于请求头和响应头…

浙江计算机二级报名步骤,浙江2016年9月计算机二级考生报名流程

导读&#xff1a;2016年9月浙江全国计算机二级考试网上报名时间为2016年6月1日-6月19日;现场缴费确认为6月1日6月20日&#xff0c;具体报名流程请看如下信息。想了解更多相关信息请持续关注我们应届毕业生考试网!(一)注册账号和登录1)考生首次登录系统需要注册登录通行证&#…

单开双控_卧室或者楼梯灯怎么安装单联双控

点击上面蓝色字体关注&#xff01;装修图例 | 别墅装修 | 装潢装饰 | 样板楼梯 | 装修设计在改电和布线前我们在这两个开关之间预埋3根线就够了。如果一头接电源&#xff0c;另一头接控制线的话&#xff0c;预埋2根线就够了&#xff0c;双控开关有三个接线柱&#xff0c;只要记…

Apache Ignite变得简单:第一个Java应用程序

在本文中&#xff0c;我们将更进一步&#xff0c;让您完成第一个Ignite应用程序的创建&#xff0c;以从分布式缓存中进行读写操作。 作为第一个示例&#xff0c;我们将尽可能简单地向您展示如何用Java编写用于处理Apache Ignite集群数据的应用程序。 可从GitHub存储库&#xf…

华测数据导出方法_输电线路塔基测量成图方法研究与应用

1.前言塔基测量成图软件是EATool第一个电力勘测模块&#xff0c;也是笔者个人刚参加工作时开发的第一个与工作直接相关的软件。该模块开发开始于2010年&#xff0c;于2012基本成型。记得第一次参加线路工程终勘定位&#xff0c;对于老员工的塔基断面测量模式有着诸多疑惑&#…

MQ在计算机组成,[转载]计算机组成框图-计算机运行流程(例子)

计算机组成框图-计算机运行流程ACC(Accumulator)&#xff1a; 累加器MQ(Multiplier-Quotient Register)&#xff1a;乘商寄存器ALU&#xff1a;算术逻辑单元X&#xff1a;操作数寄存器CU&#xff1a;控制单元IR(Instruction Register)&#xff1a;指令寄存器(用于存放当前指令)…

提交时是使用防抖还是节流_使用BlockingExecutor进行节流任务提交

提交时是使用防抖还是节流JDK的java.util.concurrent.ThreadPoolExecutor允许您将任务提交到线程池&#xff0c;并使用BlockingQueue来保存提交的任务。 如果要提交的任务有数千个&#xff0c;请指定一个“绑定”队列&#xff08;即最大容量的队列&#xff09;&#xff0c;否则…

计算机硬盘怎么设置ntfs,Windows7系统如何把磁盘格式转换为NTFS的方法

今天朋友匆匆忙忙来找我&#xff1a;他的电脑因为某种情况&#xff0c;需要吧磁盘转换成ntfs格式&#xff0c;该怎么转换?Win7系统、利用系统自带工具转换1.我们打开我们的电脑磁盘&#xff0c;大家发现小编的电脑G盘是FAT32格式的&#xff0c;小编现在要把G盘转换为NTFS格式。…

ace unlck工具下载_压缩工具:WinRAR 曝出代码执行漏洞,该升级了

作为享誉全球的装机必备工具&#xff0c;「压缩软件」这四个字基本可以认为是 WinRAR 的专有名字了。只要有 PC 的地方&#xff0c;几乎都能看到 WinRAR 的身影。不过这款软件最近却被曝出了一个有19年历史的代码执行漏洞。WinRAR 宣称在全球拥有超过5亿的用户&#xff0c;目前…

可重复使用的MicroProfile Health探针

MicroProfile Health API是一个非常基本的API&#xff0c;它基于一个或多个Health Probe报告您的服务状态。 这在某些服务器或群集控制器需要决定是否以及何时重新启动实例的情况下非常有用。 在应用程序中使用MicroProfile Health API就像实现一个&#xff08;或多个&#xf…

关于计算机航天生物的想像作文,未来的航天器想象作文750字

未来的航天器想象作文750字到了2999年&#xff0c;人类发明出了一种新型的航天器。这种航天器机身类似我们现在的轿车&#xff0c;机身长10米&#xff0c;高度最高达4&#xff0c;最低达0.5米&#xff0c;材料是来自外星的软体金属&#xff0c;上面有一条会发光的物体&#xff…