`

aop实现的一些预置了解

    博客分类:
  • aop
阅读更多

       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();
        }
    }
分享到:
评论

相关推荐

    基于Spring Framework的Java二次封装框架设计源码

    通过这种封装,可以预置一些通用的配置和模块,降低重复性代码的编写,实现快速开发和部署。 该封装框架在Spring的基础上进行了扩展和优化,通过合理的模块划分和配置管理,使得Java应用开发更加高效和便捷。开发者...

    Webx及框架简介

    7. **AOP(面向切面编程)**:Webx利用AOP实现横切关注点的解耦,如日志记录、事务管理等,让核心业务代码更专注于业务逻辑。 Webx框架的特性还包括: - **MVC架构**:Webx遵循经典的MVC设计模式,使代码结构清晰...

    Swind + Socket 至尊QQ服务端安装包

    Spring框架是Java企业级应用开发的基石,它是一个全面的后端解决方案,包含了依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问等众多功能。Spring的出现极大地简化了Java EE开发,使得开发者可以更专注于...

    客户关系管理系统

    解压并分析这个文件,可以进一步了解系统的设计、实现细节以及如何将SSM框架整合在一起。 总的来说,CRM SSM版是一个利用Spring、SpringMVC和MyBatis框架构建的客户关系管理系统,旨在通过现代化的技术手段提升企业...

    MyFrameWork

    3. **面向切面编程(AOP)**:MyFrameWork集成了AOP技术,允许开发者定义横切关注点,如日志、事务管理等,通过切面实现代码的解耦,提高代码的复用性。 4. **MVC架构**:MyFrameWork遵循经典的Model-View-...

    人事管理系统

    Spring是Java企业级应用的核心框架,它通过依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)简化了代码的管理和维护。SpringMVC是Spring框架的一部分,用于构建Web应用程序...

    spring框架快速入门

    - 使用Equinox工具,该工具提供了一个基本的框架,包含了开发所需的目录结构和Ant build文件,同时也预置了开发所需的jar包。 3. **编写功能性测试** - 在开发过程中,编写测试案例是非常重要的一步。这有助于...

Global site tag (gtag.js) - Google Analytics