Aop
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式运行期待代理实现程序功能的统一的一种技术,aop是oop的延续,是软件开发中一个热点,也是spring框架中一个重要的内容,是函数式编程的一种衍生范型,利用aop可以对业务逻辑的各个部分进行隔离从而使得业务逻辑各个部分之间的耦合度降低,提高程序的可重用,同时提高了开发效率
不破坏原有的类,生成一个代理类,在原来类的基础上进行增强
spring引入了Aspectj作为资深的aop开发
相关术语
- joinpoint:连接点 可以被拦截到的方法,能够被增强的方法,这些可以成为是连接点
- Pointcut:切入点 真正被拦截的方法,真正被增强的方法
- Advice:通知 增加的内容,通常封装成一个方法,这个方法我们称为通知
- Introduction引介 类层面的增加,给原有的类添加一些新的属性方法,在开发中通常都是给方法进行增加
- Target:被增加的对象 被增强的目标对象
- Weaving:织入 将通知应用到目标对象的过程
- proxy:代理对象 内部生成的增强对象
- Aspect:切面 多个通知和多个切入点的集合
spring-test使用
package com.itlike.demo2;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class AopTest {
@Resource(name = "goodsDao")
private GoodsDao goodsDao;
@Test
public void test(){
this.goodsDao.save();
}
}