环境准备
1,安装jdk,配置JAVA_HOME,CLASSPATH,PATH环境变量
2,下载aspectj 1.6.10.jar,并用java -jar命令安装此jar包,把安装后的bin目录添加到path,
lib目录中的jar添加到classpath中
实例:
1,正常的java类文件
public class Hello {
public void sayHello(){
System.out.println("hello Aspectj!");
}
public static void main(String[] args) {
Hello h = new Hello();
h.sayHello();
}
}
2,在Hello.sayHello()方法前后开启事务的增强处理类
public aspect TxAspect {
void around():call(void Hello.SayHello())
{
System.out.println("开始事务");
proceed();
System.out.println("结束事务");
}
}
3,在Hello.sayHello方法后记录日志
public aspect LogAspect {
pointcut logPointcut():execution(void Hello.sayHello());
after():logPointcut()
{
System.out.println("日志已经记录");
}
}
4,编译:
C:\aop>ajc -d . *.java
5,运行
C:\aop>java Hello
6,结果输出:
C:\aop>java Hello
开始事务
hello Aspectj!
日志已经记录
结束事务
分享到:
相关推荐
AspectJ提供了一种静态类型的AOP解决方案,可以进行编译时或运行时织入。 2. **AspectJ Runtime (aspectjrt.jar)**:这是AspectJ运行时库,包含运行时需要的基本类和接口,用于支持AOP的执行。它提供了加载、解析和...
AspectJ 作为静态AOP框架,提供了一种高效且声明式的切面编程方式,它允许在编译时将切面逻辑织入代码,增强了代码的可维护性和复用性。通过理解切点、通知、织入等概念,开发者可以更有效地实现横切关注点的分离,...
6. **编织增强(Advising Enhancements)**:AspectJ允许在已有的类和接口上添加方法、字段和初始化代码,实现对已有代码的无侵入式增强。 7. **集成其他Java框架**:AspectJ可以与Spring框架无缝集成,进一步简化...
这篇博客“Spring AOP + AspectJ in XML配置示例”旨在指导开发者如何在XML配置中实现Spring AOP和AspectJ的结合。 首先,我们需要理解AOP的基本概念。AOP通过将关注点(如日志、事务管理)与业务逻辑分离,提高了...
AspectJ是一种强大的AOP实现,支持静态织入和动态织入。此外,Spring框架也提供了AOP的支持,主要通过代理模式实现动态织入。 ##### 3.1 AspectJ AspectJ提供了一个完整的AOP编程模型,允许开发者使用面向方面的...
AspectJ是一个Java平台上的AOP框架,提供了强大的静态编织(编译时或加载时)能力,使得开发者可以方便地实现横切关注点,如日志、事务管理等。在给定的"基于aspectjweaver AOP实现的Annotatio"中,我们可以理解为...
AspectJ支持编译时和加载时织入,可以更好地处理静态类型和类层次结构。 现在,我们回到描述中提到的两个额外的Jar包。通常,如果你的项目中使用了Spring AOP,但缺少特定的依赖,可能会遇到以下情况: - **...
AspectJ 提供了静态和动态两种织入方式,静态织入在编译时完成,而动态织入则在运行时进行。 AspectJRT (AspectJ Runtime) 是AspectJ 的运行时库,它是AspectJ 编译器生成的字节码运行的基础。AspectJRT 包含了用于...
当Spring使用AOP时,如果选择使用AspectJ进行编译时或加载时织入,就需要这个jar包。织入是指将切面的代码插入到目标类的字节码中的过程,AspectJrt.jar使得这种操作成为可能。 其次,`aspectjweaver.jar`是AspectJ...
在Spring AOP中,如果配置了AspectJ Weaver,那么即使没有使用ajc进行预编译,也能在运行时实现AOP的切面处理。 在使用这两个jar文件时,我们需要确保Spring配置正确引用了它们,并且在Spring容器启动时,AspectJ ...
AspectJ支持静态和运行时的切面,能够在编译时、类加载时或运行时插入切面代码,这使得它可以更加灵活地处理不同场景下的需求。AspectJ的语法简洁,与Java语言无缝集成,使得开发者可以轻松地学习和使用。 ### 本书...
AspectJ是Spring AOP支持的一个强大的第三方AOP框架,它提供了更强大的面向切面编程能力,包括类型级别的切面和编译时/加载时织入。`aspectjweaver.jar`是AspectJ的织入代理,负责在运行时将切面织入到应用程序的类...
Spring AOP(面向切面编程)是Java开发中Spring框架的核心特性之一,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。在SSH(Struts、Spring、Hibernate)经典企业级开发框架中,Spring AOP扮演着至...
它能够读取和修改字节码,使得在运行时可以动态地插入切面代码,即使是在编译时没有被AspectJ编译的类上,也能进行AOP处理。因此,如果你的项目需要更复杂的切点匹配规则,或者希望在类加载时就完成切面的织入,那么...
Spring AOP,即Spring的面向切面编程模块,是Spring框架的重要组成部分,它允许开发者在不修改源代码的情况下,对程序进行功能增强或统一处理。在这个主题中,我们主要关注四个核心的jar包,它们是实现Spring AOP...
这样,我们就可以在不改变原始源代码的情况下,实现对类、方法的动态增强,达到 AOP(面向切面编程)的目的。 AOP 的核心思想是将关注点分离,比如日志、事务管理等通用功能,可以作为切面(Aspect)独立出来,不再...
这使得AspectJ可以实现对非AspectJ编译的代码的AOP支持。 5. org.springframework.aop.jar:这是Spring框架的AOP模块,提供了基于代理的AOP实现。Spring AOP允许在不改变原有代码的情况下,通过定义切面和通知来...
Spring AOP 可以与 AspectJ 集成,使用其编译时或加载时织入功能,以提高性能和减少运行时开销。`AspectJ 1.6.12` 版本的 Jar 包包括了 `aspectjrt.jar` 和 `aspectjweaver.jar`: - **aspectjrt.jar**:AspectJ ...
AspectJ是一种更为全面的AOP解决方案,支持静态织入,可以在编译时、编译后或类加载时进行织入。相比于Spring AOP,AspectJ具有更高的性能,因为它在运行前已完成织入,减少了运行时的额外开销。AspectJ提供了更丰富...
此时,为了充分利用AOP的优势,Spring框架引入了对AspectJ的支持,允许我们使用AspectJ的编译时织入或加载时织入(Load-time weaving)来增强功能。 AspectJ的jar包通常包含以下组件: 1. aspectjrt.jar:包含了...