一、用代理模式可以实现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笔记Spring_AOP笔记Spring_AOP笔记Spring_AOP笔记Spring_AOP笔记Spring_AOP笔记
李君老师JavaEE笔记-SpringAop
NULL 博文链接:https://microjava.iteye.com/blog/525796
自己学习spring课程的笔记。笔记都是根据尚硅谷的课程(spring ioc,spring aop,spring mvc,spring boot等)写的。 主要内容:spring ioc,spring aop,spring mvc,spring boot
SpringAOP学习笔记以及四个可运行的Demo,涵盖经典代理模式、基于注解、基于xml配置这3方面的Demo
NULL 博文链接:https://linres.iteye.com/blog/281221
1.Spring入门和IOC介绍 2.对象依赖 3.AOP入门 4.JDBCTemplate和Spring事务 5.Spring事务原理 6.Spring事务的一个线程安全问题 7.IOC再回顾和面试题 8.AOP再回顾
Spring Aop 学习笔记
Spring AOP源码笔记
ssh-aop笔记
aop分析笔记 个人总结所得 org.springframework.aop.framework.autoproxy
Spring的AOP开发(XML)Spring的AOP的注解开发 代码案例
从Spring5-AOP的概念->底层原理->相关术语->AOP操作(AspectJ注解)->AOP操作(AspectJ配置文件)说明AOP的相关笔记
第八课:Spring AOP配置选项 21 一、 AOP配置annotation方式 21 (一) 搭建annotation开发环境 21 (二) aspectJ类库 22 (三) AOP的annotation实例 22 (四) AspectJ的专业术语 23 (五) 织入点语法 23 (六) Advice 24 ...
java SSH框架架构学习_笔记.zip java SSH框架架构学习_笔记.struts,spring,hibernate. IOC,AOP,JDBC,编写个留言管理系统网站
第二天内容:AOP(AOP常用概念、Spring的三种aop实现方式、代理设计模式(静态代理和动态代理));第三天内容:Spring自动装配,Spring自动加载properties文件,单例设计模式,声明式事务,Ajax,JSON。 --author:
1,spring是一个开源的免费的框架(容器)。 2,spring是一个轻量级的,非入侵式的框架。 非入侵式:就是项目引入了这个框架之后,...总结:spring就是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架。
Spring学习笔记Spring spring的配置 IOC 依赖注入 基于Xml的注入 基于注释的注入 Spring的自动注入和属性自动注入 AOP 静态代理 动态代理 使用spring实现AOP 基于Annotation实现AOP 基于XML实现AOP ...
彻底学会Spring的IOC和AOP——理论+实操,参考:https://blog.csdn.net/qq_39735940/article/details/121754987
《Spring AOP 复习笔记》博客附件。 博客地址:https://blog.csdn.net/Supreme_Sir/article/details/109192940