`
8821249
  • 浏览: 69117 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring笔记(七)代理模式与aop

阅读更多
一、用代理模式可以实现aop
  1、目标对象和代理对象共同实现同一个接口,当用户调用接口时,返回代理类,代理类里先进行交叉业务逻辑,再进行目标对象的业务逻辑。


  2、使用JDK中的Proxy类,我们可以只需什么一个切面类,一个目标类,和一个接口,就可以动态得到一个代理类。
public class CustomerServiceImpl implements ICustomerServiceProxy {
	
	public void register() {
		System.out.println("注册!");
	}
}

目标对象,继承了接口ICustomerServiceProxy



/**
 * 切面
 * 
 * @author dsm
 *
 */
public class LogInvocationHandler implements InvocationHandler {
	
	private Object target;
	
	public LogInvocationHandler(Object target) {
		this.target = target;
	}

	/**
	 * Proxy通过该方法,将交叉业务逻辑代码插入到目标对象的对应方法上<br>
	 * 织入
	 * 
	 * @param obj 目标对象
	 * @param method 目标对象的方法
	 * @param args 方法的参数
	 */
	public Object invoke(Object obj, Method method, Object[] args)
			throws Throwable {
		
		//交叉业务逻辑
		System.out.println("execute time " + new Date());
		//调用目标对象的方法
		Object rstObj = method.invoke(target, args);
		
		return rstObj;
	}
}

切面

	public static void main(String[] args) {
		ICustomerServiceProxy target = new CustomerServiceImpl();
		target.register();
		
		ICustomerServiceProxy proxy = (ICustomerServiceProxy) Proxy.newProxyInstance(
				target.getClass().getClassLoader(), 
				target.getClass().getInterfaces(), 
				new LogInvocationHandler(target));
		System.out.println(proxy.getClass().getName());
		proxy.register();
	}



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

相关推荐

    spring aop 学习笔记

    - Spring AOP的实现涉及到反射、动态代理、代理模式等多个核心Java技术。 - `org.springframework.aop.framework.ProxyFactoryBean` 和 `org.springframework.aop.framework.JdkDynamicAopProxy` 是动态代理的关键...

    spring源码--AOP流程--笔记.docx

    Spring AOP 源码分析笔记 Spring AOP(Aspect-Oriented Programming)是一种编程范式,它允许开发者 modularize cross-cutting concerns,即将横切关注点模块化。AOP 使得开发者可以将一些公共的功能模块化,以便在...

    Spring AOP IOC源码笔记.pdf

    Spring AOP基于代理实现,可以使用接口代理(JDK动态代理)或类代理(CGLIB)。 7. CGLIB: CGLIB是Spring AOP默认的代理库,用于生成目标类的子类,从而实现方法拦截。当目标类没有实现接口时,Spring会使用CGLIB...

    李君老师JavaEE笔记-SpringAop

    ### 李君老师JavaEE笔记-SpringAop详解 #### 概述 李君老师的JavaEE笔记中的SpringAop部分,深入浅出地讲解了面向切面编程(Aspect Oriented Programming,简称AOP)的核心概念及其在Spring框架中的应用。AOP是一种...

    SpringAop学习笔记以及实现Demo

    **Spring AOP 学习笔记及实现Demo** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要组成部分,它提供了一种在不修改源代码的情况下,对程序进行功能增强的技术。AOP的主要目的...

    spring ioc aop mvc boot-学习笔记.docx

    Spring框架是Java开发中不可或缺的一部分,它为开发者提供了强大的依赖注入(IOC)和面向切面编程(AOP)功能,以及用于构建Web应用程序的MVC框架。Spring Boot则是基于Spring框架构建的应用程序启动器,旨在简化...

    Spring AOP学习笔记

    NULL 博文链接:https://linres.iteye.com/blog/281221

    ssh-aop笔记

    SSH-AOP笔记主要涵盖的是Spring、Struts和Hibernate三大框架集成使用时,如何结合Aspect Oriented Programming(面向切面编程)的理念进行应用增强。在Java企业级开发中,SSH是常用的MVC架构,而AOP则是一种编程范式...

    Spring_AOP笔记Spring_AOP笔记

    4. **代理(Proxy)**:在Spring AOP中,为了实现切面,需要创建目标对象的代理。代理对象负责在调用目标方法前后执行通知。Spring提供了两种代理方式: - **静态代理**:在编译时创建,通常通过实现相同接口的方式...

    Spring AOP源码笔记

    【Spring AOP源码笔记】 Spring AOP是Spring框架的核心组件之一,它实现了面向切面编程(Aspect-Oriented Programming,简称AOP),允许开发者定义“切面”,这些切面可以封装横切关注点,如日志记录、事务管理等。...

    Spring Aop 学习笔记

    Spring Aop 学习笔记

    Spring笔记.doc

    【Spring 依赖注入(IOC)与面向切面编程(AOP)】 1. IOC(依赖注入):Spring 使用 IOC 容器管理对象的生命周期和对象间的依赖关系。通过在配置文件中声明对象及其依赖,Spring 在运行时自动装配这些对象,减少了...

    spring笔记.rar

    在`spring--day02笔记.doc`中,深入剖析了AOP的实现机制,包括通知类型、切入点表达式和代理模式,为读者构建起完整的AOP知识体系。 接下来,Spring MVC是Spring框架中用于构建Web应用程序的模块,它提供了模型-...

    Spring学习笔记(13)----动态代理模式分析演示

    在本篇Spring学习笔记中,我们将深入探讨动态代理模式,并结合Spring框架的实现进行分析演示。动态代理模式是Java编程中一种重要的设计模式,它允许我们在不修改原对象代码的情况下,为对象添加额外的功能或行为。...

    spring学习笔记(七)

    总结,Spring学习笔记(七)的重点是讲解了Spring中的代理模式,包括静态代理和动态代理的概念,以及如何在AOP中应用这些代理来增强功能。通过理解这些知识,你可以更好地掌握Spring框架,提升在实际开发中的能力。

    Spring笔记示例源代码

    "Spring笔记示例源代码"这个资源很可能是为了帮助学习者深入理解Spring框架的各种功能和用法而提供的实际代码示例。 1. **Spring IoC**:IoC是Spring的核心特性,它将对象的创建和管理权交给Spring容器,使得开发者...

    达内,tarena,spring笔记,springPPT课件,达内spring笔记

    Spring笔记可能涵盖了以下内容: 1. **IoC(Inversion of Control)容器**:Spring的核心特性之一,通过反转控制权,让框架负责管理对象的生命周期和装配,开发者只需定义配置,无需手动创建对象。 2. **依赖注入...

    学习Spring笔记_AOP_Annotation实现和XML实现

    这篇“学习Spring笔记_AOP_Annotation实现和XML实现”主要探讨了如何在Spring中利用注解和XML配置来实现AOP的概念。 AOP,全称Aspect-Oriented Programming,是一种编程范式,旨在将关注点分离,让开发者可以更专注...

    SSH笔记-AOP

    SSH笔记主要围绕的是Spring框架中的AOP(面向切面编程)特性进行讲解,结合了动态代理和基于注解的配置方式。AOP是Spring框架的一个重要组成部分,它提供了一种模块化和解耦代码的方式,使得我们可以将关注点分离到...

    Spring AOP 用法笔记

    Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架中的一个重要组成部分,它提供了一种将业务逻辑与系统服务(如日志、事务管理等)分离的方法,使得我们可以更好地关注核心业务,而无需在每个...

Global site tag (gtag.js) - Google Analytics