aopJAVA,java程序员面试时问aop是什么 该怎么回答

1,java程序员面试时问aop是什么 该怎么回答面试就是要装B只说aop是面向切面编程只是个很基础的概念,看过点教程的初学者都知道所以必须得深化点 , 你得告诉他,aop实现原理其实是java动态代理,但是jdk的动态代理必须实现接口 , 所以spring的aop是用cglib这个库实现的,cglib使用了asm这个直接操纵字节码的框架,所以可以做到不实现接口的情况下完成动态代理 。最好拿张纸手写两个例子给他,然后他就没什么好问的了AOP就是面向切面编程,通常是在框架上利用AOP添加事物,权限,过滤器等 。aop是面向切面编程,主要记录日志,控制访问权限,与IOC(控制反转)组成spring的核心java aop面向方面编程
2,麻烦讲解一下Java中Spring中IOC和AOPIoC:说直白点,就是通过配置文件(XML或.properties)指定需要实例化的JAVA类(类名的完整字符串),包括该JAVA类的一组初始化值 , 然后我们在代码中加载该配置文件,然后通过 .getBean() 函数就可以得到一个该JAVA类的对象,并且该对象已经根据配置文件中指定的属性值进行了初始化 。AOP:这个比IoC更简单,直白点说就是实现调用某个方法之前或/和之后,自动执行一系列自定义的语句既然你问ioc 你就一定知道spring.sring中所有的bean对象管理都依赖于di/ioc,spring作为一个web级容器,它把所有的class类都可以转换为一个bean对象来管理 , 通过加载、实例这个bean对象,将它全部交给beanfactory来管理,在你通过applicationcontext.xml来使用和对其他bean注入的这个过程,可以理解为ioc,使用ioc可以降低项目的耦合度 , 实现类与类之间的无依赖性 。aop是面向切面编程,可以在项目中指定的位置执行指定的操作,例如事务管理 , 可以在所有非query的方法执行后都执行一次事务提交的操作 。不需要修改代码,通过xml配置 就可以完成这个操作 。
3 , AOP java中得到class对象如何获取他的方法的完整签名可以参考下 java中的反射 下面是一个摘抄来到Demo供LZ参考下 AOP 本身就是 类映射,注意 :反射非常影响性能程序代码:import java.lang.reflect.*;public class DumpMethods { public static void main(String args) { try { Class c = Class.forName(args); Method m = c.getDeclaredMethods(); for (int i = 0; i < m.length; i++) System.out.println(m.getName()); } catch (Throwable e) { System.err.println(e); } }}可以参考下 java中的反射 下面是一个摘抄来到Demo供LZ参考下 AOP 本身就是 类映射,注意 :反射非常影响性能程序代码:import java.lang.reflect.*;public class DumpMethods { public static void main(String args) { try { Class c = Class.forName(args); Method m = c.getDeclaredMethods(); for (int i = 0; i < m.length; i++) System.out.println(m.getName()); } catch (Throwable e) { System.err.println(e); } }}【aopJAVA,java程序员面试时问aop是什么 该怎么回答】

    推荐阅读