`
hwpok
  • 浏览: 251815 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用 @AspectJ 的一个例子

阅读更多
    首先,要求JDK版本为5以上,且需要导入以下9个包:
    1.asm-2.2.3.jar
    2.asm-commons-2.2.3.jar
    3.asm-util-2.2.3.jar
    4.aspectjrt.jar
    5.aspectjweaver.jar
    6.log4j-1.2.14.jar
    7.commons-logging.jar
    8.cglib-nodep-2.1_3.jar
    9.spring.jar
    还是以前面的HelloSpeaker为例子:
package org.hvp.aspect;

public class HelloSpeaker {
    
public void hello(String name) {
        System.out.print(
"Hi," + name);
    }

}

    使用@AspectJ
package org.hvp.aspect;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.aop.aspectj.annotation.AspectJProxyFactory;

@Aspect
public class HelloSpeakerProxy {
    @After(
"execution(* hello(..))")
    
public void welcome() {
        System.out.println(
", welcome to our pub.");
    }


    
public HelloSpeaker getHelloSpeakerProxy() {
        AspectJProxyFactory factory 
= new AspectJProxyFactory();
        factory.setTarget(
new HelloSpeaker());
        factory.addAspect(HelloSpeakerProxy.
class);
        
return factory.getProxy();
    }


    
public static void main(String[] args) {
        HelloSpeakerProxy proxy 
= new HelloSpeakerProxy();
        HelloSpeaker helloSpeaker 
= proxy.getHelloSpeakerProxy();
        helloSpeaker.hello(
"Huy Vanpom");
    }

}


分享到:
评论

相关推荐

    Spring @AspectJ 实现AOP 入门例子

    本篇文章将深入探讨如何利用Spring的@AspectJ注解来实现AOP,这是一个入门级别的例子,旨在帮助开发者理解并掌握这一关键特性。 首先,我们要明白什么是AOP。面向切面编程是一种编程范式,它允许程序员定义“切面”...

    征服Spring AOP—— @AspectJ

    使用@AspectJ,我们可以创建一个包含切面逻辑的类,并通过注解来声明切点(pointcuts)和通知(advisors)。下面是一些关键的@AspectJ注解: 1. `@Aspect`:标记一个类为切面类,此类包含切点和通知。 2. `@...

    @AspectJ配置Spring AOP,demo

    提供的`aspectj-1.7.0.M1.jar`可能是一个AspectJ库的早期版本,用于支持@AspectJ注解的编译和运行时织入。`springAOP2`可能是一个包含具体示例代码的目录。`基于@AspectJ配置Spring AOP之一 - 飞扬部落编程仓库-专注...

    Spring的AOP实例(XML+@AspectJ双版本解析+源码+类库)

    在这个例子中,`@Aspect` 注解定义了一个切面,`@Before` 和 `@After` 注解分别定义了前置和后置通知,`execution` 表达式指定切入点。 ### Spring AOP与AspectJ库 在实际应用中,Spring AOP通常需要依赖以下库: ...

    Spring AOP 概念理解及@AspectJ支持

    例如,下面的代码展示了如何使用@AspectJ定义一个简单的切面: ```java @Aspect public class LoggingAspect { @Before("execution(* com.example.service.*.*(..))") public void logBefore(JoinPoint joinPoint...

    AspectJ面向切面的例子

    标题"AspectJ面向切面的例子"指的是通过AspectJ实现的一个实际项目,这个例子是一个名为"Spacewar"的小游戏。在"Spacewar"游戏中,我们可以看到AspectJ如何被用来处理游戏中的各种横切关注点,比如游戏状态记录、...

    aspectj用的的jar包

    AspectJ是Java平台上的一个开源AOP框架,它为Java开发者提供了强大的静态编织(static weaving)能力,允许在编译时或加载时修改字节码,将切面逻辑插入到目标类的方法中。 AspectJ包含两个主要的jar包:...

    spring对AOP的支持(使用AspectJ进行AOP演示)

    接下来,我们创建一个切面类,使用 AspectJ 注解来定义切点(Pointcut)和通知(Advice)。例如: ```java @Aspect public class LoggingAspect { @Before("execution(* com.example.service.*.*(..))") public ...

    Spring 使用AspectJ 实现 AOP之前置通知小例子

    AspectJ是Java平台的一个开源项目,提供了全面的AOP支持,包括编译时和运行时的织入。Spring框架整合了AspectJ,使得在Spring应用中使用AOP变得更加便捷。 标题提到的"Spring 使用AspectJ 实现 AOP之前置通知小例子...

    动手写一个AspectJ的gradle插件

    在本文中,我们将深入探讨如何动手编写一个基于AspectJ的Gradle插件。AspectJ是一种强大的面向切面编程(AOP)框架,它允许我们分离关注点,将横切关注点(如日志、事务管理)与核心业务逻辑解耦。而Gradle则是一个...

    基于框架的Web开发-基于AspectJ的AOP.doc

    创建一个简单的@AspectJ AOP例子,我们可以从定义切面开始。假设有一个`Performance`接口,代表各种表演,只有一个`perform()`方法。然后创建`Ballet`类作为`Performance`接口的实现,它在`perform()`方法中输出...

    Spring AspectJ的学习一

    AspectJ是AOP领域的一个强大工具,它扩展了Java语言,允许开发者创建所谓的"切面",来封装横切关注点,如日志、事务管理等,从而使代码更清晰、更模块化。本文将深入探讨如何在Spring框架中集成AspectJ,以及如何...

    Spring2.5使用AOP需要的aspectJ

    AspectJ是一个成熟的AOP框架,Spring在其AOP实现中整合了AspectJ,提供了更强大的面向切面编程能力。本篇文章将详细探讨在Spring 2.5中使用AspectJ进行AOP开发所需的知识点。 首先,我们需要理解AOP的核心概念: 1....

    JavaEE AspectJ基于注解的配置

    在这个例子中,`@Before`注解定义了一个前置通知,会在匹配的方法执行前执行。`execution(* com.example.service.*.*(..))`是切入点表达式,表示对`com.example.service`包下的所有类的所有方法进行拦截。 然后,...

    android 实现AOP 使用Aspectj Kotlin版Demo.zip

    AspectJ是一个广泛使用的Java语言的AOP框架,而Kotlin作为现代的Android开发语言,与AspectJ结合可以带来更简洁、高效的实现方式。这个"android 实现AOP 使用Aspect Kotlin版Demo"就是一个实例,展示了如何在Kotlin...

    Android AspectJ 使用

    在这个例子中,我们创建了一个名为`MyAspect`的切面,其中`@Around`注解定义了一个环绕通知,它将在`MyActivity.onResume()`方法执行前后打印日志。 五、运行与调试 1. 构建项目后,AspectJ会自动生成对应的字节码...

    AspectJ程序设计指南

    - 提供了一系列具体的例子来展示AspectJ的使用。 **3.3.1 连接点集和thisJoinPoint变量** - 展示了如何使用thisJoinPoint变量来获取当前连接点的信息。 - **任务和观察**:通过具体案例讲解了如何利用AspectJ来...

    Java JDK代理、CGLIB、AspectJ代理分析比较

    以下是一个使用JDK动态代理的示例: ```java public class ProxyFactory implements InvocationHandler { private Class<?> target; private Object real; // 委托类class public ProxyFactory(Class<?> ...

Global site tag (gtag.js) - Google Analytics