`
隐形的翅膀
  • 浏览: 497361 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

AOP 学习, ProxyFactory 学习一

AOP 
阅读更多
Advice: 拦截的切面

ProxyFactory: 简单使用

使用ProxyFactory, 需要指定其两个属性

       setTarget: 拦截目标
       addAdvice: 切面, 也就是拦截目标时你要执行的动作

public class MessageWriter {
	
	public void showMessage(){
		
		System.out.println("this is a test");
		
	}

}

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;

public class MessageDecorator implements MethodInterceptor{
	
	public Object invoke(MethodInvocation invocation) throws Throwable{
		System.out.print("hello\n");
		Object retVal=invocation.proceed();
		System.out.print("end");
		return retVal;
	}

}

import org.springframework.aop.framework.ProxyFactory;


public class test {

	public static void main(String[] args) {
		
		MessageWriter target =new MessageWriter();
		
		ProxyFactory pf=new ProxyFactory(target);
		
		/* or 
		 ProxyFactory pf=new ProxyFactory(); 
		 ps.setTarget(target);
		 */
		pf.addAdvice(new MessageDecorator()); 
		
		MessageWriter proxy=(MessageWriter)pf.getProxy();
		
		proxy.showMessage();
		
	}
}

result:
hello
this is a test
end
分享到:
评论

相关推荐

    aop的详细总结(包含例子)

    面向切面编程(AOP)是一种编程范式,旨在提高代码的可重用性和模块化。在AOP中,关注点被分离为不同的模块,称为切面,这些切面包含了跨越多个对象的功能,如日志、事务管理等。以下是AOP相关知识点的详细解释: ...

    spring-aop.rar_aop1270_spring_spring aop

    Spring AOP的核心类包括`org.springframework.aop.framework.ProxyFactoryBean`、`org.springframework.aop.framework.ProxyFactory`、`org.springframework.aop.aspectj.autoproxy.AspectJAutoProxyCreator`等。...

    小马哥讲 Spring AOP 编程思想 - API 线索图.pdf

    - **容器(1对1关联)**:此处可能指的是Spring IoC容器与AOP配置的一对一关联。 - **PointcutAdvisor(切点通知器)**:一个组合了Pointcut和Advice的接口,用于将切点和通知结合在一起。 - **...

    springAOP核心组件分析

    Spring AOP(面向切面编程)是Spring框架的一个重要组成部分,它通过预定义的切点(Pointcut)来拦截方法的调用,并将横切关注点(如日志、事务管理等)与业务逻辑分离。本知识点将围绕Spring AOP的核心组件进行分析...

    第四章:Spring AOP API 设计模式1

    3. **工厂方法模式(Factory Method)**:Spring AOP中的`ProxyFactory`是一个典型的工厂方法模式实现,它根据不同的条件创建不同的代理对象,将实例化推迟到子类,提供了更大的灵活性。 4. **原型模式(Prototype...

    SpringAOP

    1. **切面(Aspect)**:切面是关注点的模块化,它将横切关注点封装起来,例如事务管理就是一个切面。 2. **连接点(Join Point)**:程序执行过程中的特定点,如方法调用或异常抛出。 3. **通知(Advice)**:在...

    spring aop

    #### 一、Spring AOP 概述 Spring AOP (Aspect Oriented Programming) 是一种编程范式,用于解决传统 OOP 编程模式中存在的问题,尤其是对于那些横切关注点(Cross-cutting Concerns)的处理。横切关注点是指那些...

    个人用java动态代理模拟实现spring aop

    接着,我们需要一个代理工厂(ProxyFactory)来创建代理对象,工厂会根据目标对象是否实现接口选择JDK或CGLIB。 1. 定义切点(Pointcut): - 可以使用正则表达式或者自定义注解来定义切点,表示哪些方法会被拦截...

    第二章:Spring AOP 基础1

    - 使用`org.springframework.aop.framework.ProxyFactory`等接口来手动配置和创建包含通知的代理。 8. **动态代理**: - Spring AOP支持自动动态代理,根据需要创建代理实例。 9. **TargetSource替换**: - ...

    spring-aop-ProxyFactoryBean 源码分析

    在Spring框架中,AOP(面向切面编程)是一个核心特性,它允许我们在不修改代码的情况下,对程序的行为进行统一的管理和控制。`ProxyFactoryBean`是Spring AOP实现中的一个重要类,它用于创建代理对象,使我们能够...

    AOP 和 Aspect 注解切入 测试 Demo

    1.ProxyFactory 基于 MethodBeforeAdvice、AfterReturningAdvice 利用 Spring Api 定义前、后置处理方法,并通过代理工厂类获取代理对象(代码或Xml配置实现) 2.ProxyFactoryBean 显式地设置 Advisors、Advice、...

    AOP实现计算器代码.zip

    使用ProxyFactory或ProxyFactoryBean实现计算器功能,同时(1)日志功能:在程序执行期间追踪正在发生的活动(打印出调用的方法,以及参数的参数值);(2)验证功能:希望计算器只能处理正数的运算,当有负数参与...

    spring AOP 概念

    - **Spring AOP 的织入机制**:由 ProxyFactory 或 ProxyFactoryBean 在运行时自动完成。 ##### Target(目标对象) - **定义**:需要应用 Aspect 功能的对象。 - **实例化**:通常是一个具体的 Java 对象。 ####...

    Spring_0300_JDKProxy

    它提供了一种优雅的方式来管理对象的生命周期和依赖关系,并且还包含了强大的面向切面编程(AOP)支持。在Spring的AOP模块中,动态代理是一个重要的概念,它允许我们在不修改原有代码的情况下,为方法添加额外的功能...

    Spring AOP 自动代理源码 DefaultAdvisorAutoProxyCreator

    Spring AOP源码02:ProxyFactory Spring AOP源码03:JdkDynamicAopProxy Spring AOP源码04:MethodInvocation 拦截器调用 Spring AOP源码05:DefaultAdvisorAutoProxyCreator Spring期末考压轴题:当Spring AOP遇上...

    Spring源码学习十二:@Transactional是如何工作的1

    Spring 框架中 @...然后,通过 AbstractAutoProxyCreator 类的 postProcessAfterInitialization 方法,创建了一个 AOP 代理对象。最后,通过 JdkDynamicAopProxy 类的 invoke 方法,实现了事务管理的拦截和调用。

    如何使用Spring AOP的通知类型及创建通知

    使用`ProxyFactory`或`AopProxyFactoryBean`来创建代理,并将通知添加到代理工厂中。 总结起来,Spring AOP的通知类型提供了灵活的扩展机制,使得我们可以在不修改业务代码的前提下,实现如日志记录、事务管理、...

    Spring笔记(第七次)1

    在Spring框架中,AOP(面向切面编程)是一种强大的工具,它允许程序员定义横切关注点,并将这些关注点与...通过深入学习和实践,开发者可以更有效地利用Spring AOP实现复杂的功能,如事务管理、日志记录、性能监控等。

    spring 总结.pdf

    Spring AOP(面向切面编程)是Spring框架提供的一个强大的功能模块,它支持通过预编译方式和运行期动态代理实现AOP。在Spring框架中,AOP的核心组成部分包括切面(Aspect)、连接点(Joinpoint)、通知(Advice)、...

Global site tag (gtag.js) - Google Analytics