`
小嘴冰凉
  • 浏览: 456982 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

aspectj this , target

阅读更多



package com.sheng.aspectj;
//this 是否可以理解为所处的环境呢。。 呵呵

public aspect TestAspectj {
	pointcut beforeExecutionCut() : execution(void *..sayHello(..)) && target(com.sheng.aspectj.HelloWord);
	//两句的变化可以看eclipse左边的提示,如下图
	pointcut beforeCallCut() : call(void *..sayHello(..)) && this(com.sheng.aspectj.HelloWord);
	
//	pointcut beforeCallCut() : call(void *..sayHello(..)) && this(com.sheng.aspectj.Test);
	
	before() : beforeExecutionCut() {
		System.out.println("please say hello first");
	}
	
	before() : beforeCallCut() {
		System.out.println("please say hello second");
	}
}


package com.sheng.aspectj;

public class HelloWord {

	public void sayHello() {
		System.out.println("hello word ");
	}

}


package com.sheng.aspectj;

public class Test {
	void sayHello() {
		new HelloWord().sayHello();
	}
	
	public static void main(String []args) {
		new Test().sayHello();
	}
}




  • 大小: 52.7 KB
分享到:
评论

相关推荐

    讨论AspectJ之target、this、within关键字差异性

    本篇文章将深入探讨AspectJ中的三个重要关键字:target、this和within,以及它们在定义切面范围时的区别。 首先,我们来了解`target`关键字。在AspectJ中,`target`关键字用于指定通知(advice)应该应用到哪些类型...

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

    this.target = target; } // 实际执行类bind public Object bind(Object real) { this.real = real; // 利用JDK提供的Proxy实现动态代理 return Proxy.newProxyInstance(target.getClassLoader(), new ...

    Aspectj5学习文档

    此外,AspectJ5还支持运行时类型和上下文的暴露,例如@this、@target、@args、@within、@withincode、@annotation等,这些注解能够帮助开发者在运行时获取到更多类型和上下文的信息,使得对程序的控制和调试更加容易...

    跟我学Spring3(6.5)AspectJ切入点语法详解

    此外,AspectJ还支持使用`within()`, `this()`, `target()`, `args()`, `@annotation()`等函数来进一步细化切点表达式,以便更精确地定位我们关心的代码。 在Spring3中,AspectJ的使用可以极大地提高代码的可维护性...

    如何使用Spring Boot的@Pointcut注解

    - **target**:与this类似,但用于匹配目标对象的类型,例如`target(com.example.demo.service.ServiceInterface)`会匹配所有实现了`ServiceInterface`接口的对象。 - **args**:匹配具有指定参数类型的方法,如...

    第二章:Spring AOP 基础1

    - `this`: 限制匹配当前bean引用(Spring AOP代理)是给定类型实例的情况。 - `target`: 限制匹配目标对象(被代理的应用对象)是给定类型的实例。 - `args`: 限制匹配参数是给定类型的实例的情况。 - `@target`...

    Spring AOP 所有切入点指示符详解.docx

    4. **target**:与`this`类似,但`target`匹配的是目标对象的类型,而不考虑AOP代理。`target(com.example.myapp.MyClass)`将匹配`MyClass`实例的方法,不包括实现了`MyClass`的接口。 5. **args**:这个指示符用于...

    JDK动态代理

    this.target = target; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // 在调用前进行操作 before(); // 调用目标对象的方法 Object result = ...

    Spring中的AOP不生效

    <aop:aspectj-autoproxy proxy-target-class="false"/> ``` 2. **检查Java配置**: - 如果是通过基于注解的方式启用AOP,需要确保切面类上有`@Aspect`注解,并且配置类中有`@EnableAspectJAutoProxy`注解。 - ...

    spring入门学习-6、AOP几种配置方式详解.pdf

    @AspectJ 注解驱动的 AOP 是一种基于注解的方式,它结合了 AspectJ 的强大功能和 Spring 的灵活性。这种方式允许开发者使用标准的 @AspectJ 注解来定义切面、切入点以及通知等元素,同时利用 Spring 的容器管理这些...

    spring自定义切面实例

    @Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface rmpfLog { String desc() default "信息"; } ``` 此注解用于标记需要被切面增强的方法,并提供了一个默认描述...

    AOP编程示例

    this.target = target; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("Before method execution"); Object result = method....

    AOP中注解参数详解.pdf

    5. **target**:与`this`类似,但`target(YourBean)`匹配的是被代理的目标对象(非代理)是`YourBean`类型的连接点。 6. **args**:`args(YourType)`匹配那些参数类型为`YourType`的连接点。 7. **@target**:`@...

    代理模式的各种实现 (动态代理、静态代理)

    this.target = target; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { before(); Object result = method.invoke(target, args); after(); return ...

    spring aop

    - 使用`within()`、`this()`、`target()`等关键字指定目标类、目标对象或目标对象类型。 5. **AOP 应用场景** - **日志记录**:在方法调用前后记录执行信息。 - **事务管理**:自动开启和提交事务,处理异常回滚...

    springmvc中使用log4j及aop记录日志的例子

    log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n # 可以添加更多...

    pointcut表达式and or not在xml中配置

    - **this()** 和 **target()**:分别用于匹配代理对象和目标对象。 - `this(com.babyhen.service.UserService)`:匹配代理对象是UserService类型的切点。 - **args()**:用于匹配特定参数类型的方法。 - `args...

    Spring AOP精讲

    这可以在编译时(如使用AspectJ编译器)或运行时完成。Spring等纯Java AOP框架通常在运行时完成织入。 #### Spring AOP示例 下面是一个简单的Spring AOP示例,演示了一个前置通知的实现: ```java package ...

    spring chm文档

    Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright...

Global site tag (gtag.js) - Google Analytics