Spring测试和AOP

Spring整合juilt测试框架

  • 需要“springs-test”jar包
@RunWith(SpringJUnit4ClassRunner.class)
//@RunWith(SpringJUnit4ClassRunner.class) 整合包提供
@ContextConfiguration("classpath:applicationContext.xml")
// @ContextConfiguration(locations="核心配置文件位置 classpath: 表示类路径 src ")
public class Test1 {
    @Autowired
    private UserService userService;
    @Test
    public void test(){
        userService.add();
    }
}

Spring AOP

  • AOP 是软件设计领域中的面向切面编程,它是面向对象编程的一种补充和完善。
  • AOP就是要在基于OCP(开闭原则)在不改变原有系统核心业务代码的基础上动态添加一些扩展功能并可以控制对象的执行(例如可以让这个业务继续执行,也可以让这个业务停止执行.)。

AOP相关术语

  • 切面(aspect): 横切面对象,一般为一个具体类对象(可以借助@Aspect声明)。
  • 连接点(joinpoint):程序执行过程中某个特定的点,一般指被拦截到的的方法。
  • 切入点(pointcut):对连接点拦截内容的一种定义,一般可以理解为多个连接点的结合。
  • 通知(Advice):在切面的某个特定连接点上执行的动作(扩展功能),例如around,before,after等。

AOP基本步骤

  • step1:添加aop依赖(两个)

  • step2:配置aop 核心(基于xml,基于注解:重点)

  • step3:定义核心业务(核心关注点):推荐先写接口再写实现类

  • step4:定义扩展业务(非核心关注点):本质上就是切面

  • step5:基于配置实现非核心业务的切入(切入点,连接点,通知)

  • step6:编写测试类进行单元测试

  • @Aspect 注解用于标识此类为一个AOP横切面对象
    @Pointcut 注解用于定义本类中的切入点,本案例中切入点表达式用的是bean表达式,这个表达式以bean开头,bean括号中的内容为一个spring管理的某个bean对象的id。
    @Before 用于定义一个前置通知(满足切入点表达式的核心业务方法执行之前要执行的一个操作)
    @After 用于定义一个后置通知(满足切入点表达式的核心业务方法执行之后要执行的一个操作)

    术语增强:
    切面:用于封装扩展业务的一个类的对象。
    通知:切面扩展业务中的一个操作(方法)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值