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

  • 相关阅读:
    Android集成科大讯飞SDK语音听写及语音合成功能实现
    Android开发中一些常见的问题解决方案
    Android混淆配置文件规范
    android第三方分享之友盟社会化组件
    android一些常用的代码2(收藏)
    svn
    ubuntu 解决中文zip乱码问题
    android优秀Github源码整理
    linux清理内存
    cocos2d-x图层相关 锚点
  • 原文地址:https://www.cnblogs.com/sxdcgaq8080/p/8549747.html
Copyright © 2011-2022 走看看