AspectJ使用经验
1)AspectJ1.2版下载后不要解压,直接双击安装
2)AspectJ5版的语法有了较大变化,请下载AJDT插件进行开发
3)目前的AJDT开发不支持语法提示,在源代码规模较大的情况下,编译较慢,10万行代码,20个pointcut,
编译约2分钟
4)AJDT weave pointcut的方式,是在切点的调用处进行weave,不是在被调方法的前后直接weave,所以在
JSP等非编译地点的调用是不能拦截的。
下面是代码段示例:
/*
* Created on 2005-6-14
*/
package aspectj;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
/**
* @author HongSoft
*
*/
public aspect MonitorAspect {
static {
//PropertyConfigurator.configure("aspectj_log.properties");
}
private static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//Log logg = LogFactory.getLog(MonitorAspect.class);
//Logger logg=Logger.getLogger(MonitorAspect.class.getName());
long beginTime=0;
//天气预报
pointcut monitorAspect1(): target(QueryWertherCachedTest)&&call(* getWeatherInfobyCity(String));
//电话
pointcut monitorAspect4():call(*PhoneService.open(String,int,String));
private void before(String str)
{
beginTime=System.currentTimeMillis();
System.out.println("before Aspect:" + str);
//logg.info("开始调用接口"+str+"的时间是:"+sdf.format(new Date())+"\n");
}
private void after(String str)
{
long duration=System.currentTimeMillis()-beginTime;
System.out.println("after Aspect:" + str);
//logg.info("结束调用接口"+str+"的时间是:"+sdf.format(new Date())+"\n该接口调用共耗时"+duration+"毫秒\n");
}
Object around():monitorAspect1(){
before("QueryWertherCached.getWeatherInfobyCity(String))");
try
{
proceed();
}catch(Exception e)
{
e.printStackTrace();
}
after("QueryWertherCached.getWeatherInfobyCity(String))");
return null;
}
void around():monitorAspect4(){
before("PhoneService.open(String,int,String)");
try
{
proceed();
}catch(Exception e)
{
e.printStackTrace();
}
after("PhoneService.open(String,int,String)");
}
}
分享到:
相关推荐
对于有经验的开发者来说,这有助于自定义扩展和优化AspectJ的使用。 【工具】AspectJ提供了一整套工具集,包括编译器ajc(AspectJ Compiler)和织入工具AJDT(AspectJ Development Tools),使得在Eclipse等IDE中...
【标签】"开源项目"表明AspectJ是一个公开的、允许自由使用的项目,遵循特定的开源许可协议,通常鼓励社区参与开发和改进。 在【压缩包子文件的文件名称列表】中,我们看到"org.aspectj-master",这通常表示这是...
通过阅读《AspectJ Cookbook》,开发者可以学习到如何有效地使用AspectJ来提高代码的可维护性和可读性,减少代码重复,并且能够更好地组织和管理复杂的系统架构。这本书不仅是初学者的入门指南,也是经验丰富的...
- **用方面进行代码跟踪**:通过具体案例展示了如何使用AspectJ来进行代码跟踪。 **3.5 用于产品的方面** - **Bean方面**:展示了如何使用AspectJ来增强Bean的行为。 - **Subject-Observer协议**:通过案例展示了...
- **实战案例**:通过多个实际案例的分析,展示了如何使用AspectJ解决复杂的企业级问题。 - **技术前瞻性**:本书对AOP的发展趋势进行了展望,并讨论了AspectJ如何适应这些变化。 - **读者评价**:众多专业评论家和...
7. **集成开发环境支持**:了解如何在Eclipse或IntelliJ IDEA等IDE中配置AspectJ支持,以及如何使用AJDT(AspectJ Development Tools)插件。 8. **实战应用**:通过示例代码了解如何在实际项目中应用AspectJ,例如...
《AspectJ 1.8.13 源码解析》 AspectJ 是一个强大的面向切面编程(AOP)框架,它允许开发者在 Java 应用程序中声明性...无论是初学者还是经验丰富的开发者,深入理解 AspectJ 的源码都将为提升编程技能提供宝贵资源。
但从上下文可以推断出本书的重点在于通过实践案例来讲解如何使用AspectJ进行企业级应用开发。 #### 标签分析 - **AspectJ**:这是一门面向切面编程的语言,用于Java平台,它允许程序员定义切面来封装那些横切多个...
总的来说,AspectJlib-1.5.3-sources.jar.zip提供了一个深入学习和实践面向切面编程的平台,无论你是初学者还是经验丰富的开发者,都能从中受益匪浅。通过理解并运用AspectJ,你可以编写出更模块化、更易于维护的...
用户经验方面,AspectJ5和AJDT(AspectJ Development Tools)的结合为用户提供了一个集成的开发环境,提高了AOP的开发体验。AspectJ5和AJDT的紧密集成让用户在使用Eclipse等IDE时能够更加方便地编写和管理AOP代码。 ...
- **AspectJ介绍:**AspectJ是一种全面的面向切面编程语言,它可以独立于Java SE或Java EE平台使用,也可以与Spring框架紧密结合。AspectJ提供了更丰富的语法和功能,例如可以在运行时动态改变对象的行为。 - **集成...
本书详细介绍了如何使用AspectJ来实现这一目标。 在《AspectJ in Action》中,作者会从基础开始,逐步引导读者了解AOP的核心概念,包括切面、通知(advice)、切入点(pointcut)和织入(weaving)。这些知识点是...
无论是初学者还是有经验的程序员,都可以从本书中获得有价值的见解和技能,提升自己的编程水平,尤其是在处理复杂系统架构和维护大规模应用时,AOP和AspectJ的应用将展现出其独特的价值和魅力。总之,这本书是每个...
书中特别强调了AspectJ与Spring框架的结合使用,这在企业级应用中尤为重要。通过学习本书,读者不仅可以掌握AspectJ的核心知识,还能了解到如何将其应用于现实世界的问题解决中。 - **基础篇**:介绍AspectJ的基础...
本书旨在帮助读者理解和掌握如何在实际项目中有效地使用AspectJ来提升代码的组织结构和可维护性。 面向切面编程(AOP)是一种编程范式,它将关注点分离为不同的模块,即“切面”,这些切面可以独立于主业务逻辑进行...
- **Spring-AspectJ集成**:详细介绍如何将AspectJ与Spring框架结合使用,以实现更为高级的模块化和灵活性。 - **应用案例**:基于熟悉的Java技术栈(如JDBC、Hibernate、JPA、Spring Security、Spring MVC和Swing)...
标题“spring-aop-aspectj-case”涉及到的是Spring框架中的AOP(面向切面编程)与AspectJ的集成使用案例。在Spring框架中,AOP用于处理系统中的横切关注点,如日志、事务管理等,而AspectJ则是一个强大的、独立的...
最后,如果你在使用ajdt2.2.3过程中遇到任何问题或者有新的发现,建议你在社区分享你的经验,这对其他开发者来说是一份宝贵的资源。通过评论,我们可以相互学习,共同进步,让开发工作更加高效和愉快。 总结,ajdt...
### AOP - Mastering AspectJ Aspect-Oriented Programming in Java #### 核心知识点解析 ...无论是对于初学者还是经验丰富的开发人员而言,《Mastering AspectJ》都是一本值得深入学习的重要资源。
总的来说,"cj.software.aspectj.aspectj-in-action-parent"项目提供了一个深入了解和实践AspectJ的平台,有助于提升Java开发者在面向切面编程方面的技能和实践经验。通过深入研究这个项目,开发者可以更好地理解...