zoukankan      html  css  js  c++  java
  • 【面试 AOP】【第八篇】AOP的问题

    1.AOP的原理以及应用场景

      面向切面编程,不修改原有代码逻辑的情况下进行逻辑增强。

      使用场景:短信业务,restful返回统一响应体等等。

    ===============================================================

    2.AOP的实现有两种,你是用的哪一种,这两种区别是什么?

      1》AspectJ 实现的静态代理。

        编译时就生成了AOP代理类,将新增代码和原有代码生成新的代理类

      2》SpringAop实现的动态代理

        不会去修改字节码,而是在内存中生成AOP对象,这个对象包含了目标对象的全部方法,并且在特定的切点做了增强处理

        2.1》JDK动态代理

        通过反射来接收被代理的类,并要求必须实现一个接口

        2.2》CGLIB动态代理

        采用CGLIB动态代理,通过继承来实现原有类的子类,所以如果原有类是final修饰的,就不能采用这种代理。

        拓展:区别

        1》AspectJ静态代理,性能更好,但是需要特定的编译器进行处理

        2》SpringAOP只是借用了AspectJ的注解功能

    ===============================================================

    3.AOP的相关注解,表达式都有哪些?

      注解:@AspectJ、@Pointcut、@Before、@After、@AfterReturning、@AfterThrowing、@Around

      表达式:executio()  within() this() bean()

  • 相关阅读:
    job_queue_processes参数讲解
    Oracle trunc()函数的用法
    JSON字符串转JavaBean,net.sf.ezmorph.bean.MorphDynaBean cannot be cast to ……
    javax.swing.JList 设置分割线
    清除SVN版本控制文件
    MyEclipse SVN安装方法
    ExtJs xtype类型介绍
    Android中的“再按一次返回键退出程序”实现
    Android之NetworkOnMainThreadException异常
    HDU 3613 Best Reward
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/8549747.html
Copyright © 2011-2022 走看看