spring的aop技术,我以前只知道是面向切面的思想模式,但是一直不知道它是如何实现的,曾经一度怀疑和设计模式差不多。。。。这几天,看了下资料,发现主要有三中方式,÷
一是编译期编译的实现添加一些共同的特性,
二是类加载的时候添加一些共同的特性,
三是动态代理,即是用反射的方法来执行方法,在这期间把一些共有的特性添加进去。
1,编译期编译需要了解的东西,JavaCompiler对象,JDK6.0有ToolProvider对象产生。简单的代码如下所示。
public void test()
{
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
InputStream in = null;// 编译期不接受任何控制台的流输入,总是为NULL
OutputStream out = null;// 输出流,如果为null,默认为System.out
OutputStream err = null;// 出错流,如果为null,默认为System.err
int result = compiler.run(in, out, err, "Test.java");// result 为0,表示编译成功
}
2,类加载需要继承类加载器 ClassLoader.
3,动态代理
public static void handler(String className, String methodName)
{
try
{
Class<?> cla = Class.forName(className);
Method method = cla.getMethod(methodName);// 获取空参的方法;如果有参,报异常
Object obj = cla.newInstance();// 简单的产生实例,如果没有空参构造器,会报异常
System.out.println("--------------start----------------");
long start = System.currentTimeMillis();
method.invoke(obj);// 执行方法
System.out.println(System.currentTimeMillis() - start);
System.out.println("--------------end----------------");
}
catch (Exception e)
{
e.printStackTrace();
}
}
分享到:
相关推荐
NULL 博文链接:https://zhang-yingjie-qq-com.iteye.com/blog/319927
在net core2.2时,我当时就尝试过用autofac实现aop,但这次我不想用autofac,我用了一个更轻量级的框架,AspectCore。 用起来非常非常的简单,但一开始还是走了一点弯路,主要是网上都是net core3以下的教程,3以下...
基于注解实现SpringAop基于注解实现SpringAop基于注解实现SpringAop
java springAOP实现数据字典
通过SpringAop实现多数据源的动态切换 并采用Druid连接池,可扩展继续增加数据库配置。
1、基于springboot+mvc+freemarker+aop实现校友信息管理系统源码.zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考...
演示了spring基于AOP代理TransactionProxyFactoryBean实现事务
AOP面向切面编程(Aspect Oriented Programming),是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。下面这篇文章主要给大家介绍了关于利用C#实现AOP常见的几种方法,需要的朋友可以参考借鉴,...
在Spring1.2或之前的版本中,实现AOP的传统方式就是通过实现Spring的AOP API来定义Advice,并设置代理对象。Spring根据Adivce加入到业务流程的时机的不同,提供了四种不同的Advice:Before Advice、After Advice、...
注解方式实现AOP编程
spring作为一个aop框架,能轻松实现面向切面编程,本例演示如何使用spring进行面向切面编程。
AOP下的权限控制实现 AOP下的权限控制实现 AOP下的权限控制实现 AOP下的权限控制实现 AOP下的权限控制实现
基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker+aop实现校友信息管理系统.zip基于springboot+mvc+freemarker...
AOP的意思就是面向切面编程。本文主要是通过梳理JDK中自带的反射机制,实现 AOP动态代理模式,这也是Spring AOP 的实现原理
Spring AOP的实现机制中文版,动态代理及原理,自定义类加载器
.net平台AOP的实现 .net平台AOP的实现 .net平台AOP的实现 .net平台AOP的实现 .net平台AOP的实现
动态代理 实现简单分页 spring aop 实现简单分页
Spring-Aop源码实现
目前整个开发社区对AOP(Aspect Oriented Programing)推崇备至,也涌现出大量支持AOP的优秀... 要详细了解学习AOP可以到它老家http://aosd.net去瞧瞧。这里只是意图通过一个简单的例子向初学者展示一下如何来进行AOP。
Spring AOP实现方法之一:CGLIB 实现AOP功能