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()

  • 相关阅读:
    H3C交换机流量镜像
    脚本引发的思考
    【PAT Advanced Level】1015. Reversible Primes (20)
    JSTL自定义函数完成ACL即时认证
    [翻译Joel On Software]选择一门语言/Choosing a language
    MFC-CWinApp
    poj2462
    HDU 3472 混合图欧拉回路 + 网络流
    Vim命令合集
    Windows下SQLMAP的安装图解
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/8549747.html
Copyright © 2011-2022 走看看