1.什么是AOP?
面向切面的编程,找出纸和笔,画一个箭头,两道竖线将这个箭头砍断,这就是AOP
举例来说,某个方法正在运行呢,要想在前面加个日志,加在这里,后面加个日志,加在这里,前面加transaction begin后面加transaction commit。
实现:动态代理,如果是实现了interface的话,就用jdk里面的Proxy和InvocationHandler就可以搞定,具体的得查查,
如果不实现interface,也没关系,可以使用CGLIB包直接操作二进制码,也可以完成,这个没有亲自写过,需要写的话应该问题不大。
2.AOP主要用在哪些方面?
权限的检查、日志、性能、审计、事务
凡是能够想得到加入切面的分布在多个方法里面的这些代码可以组织到一起的都可以用AOP来实现。
3.你们在项目中是怎么用的呢?
我们在项目中主要是用到了声明式事务管理中