Spring的AOP入门开发与spring整合Junit(八)

在applicationContext.xml配置文件中引入AOP约束后,想要进行Spring的AOP开发,还需要导入三个jar包,两个Spring的包和一个AspectJ的包

spring-aop-5.1.5.RELEASE
spring-aspects-5.1.5.RELEASE
com.springsource.org.aspectj.weaver-1.6.8.RELEASE
Spring的AOP入门开发与spring整合Junit(八)_第1张图片

首先定义一个需要被增强的类 ProductDaoImpl:

我们打算增强其中的save方法,在执行save方法前先进行一次权限校验,也就是前置通知。

public class ProductDaoImpl implements ProductDao {
    @Override
    public void save() {
        System.out.println("保存商品");
    }

    @Override
    public void update() {
        System.out.println("修改商品");
    }

    @Override
    public void find() {
        System.out.println("查找商品");
    }

    @Override
    public void del() {
        System.out.println("删除商品");
    }
}

再定义一个切面类,也就是通知所处的类,编写增强动作的逻辑方法,用来做权限校验功能 MyAspectXML :

public class MyAspectXML {
    public void checkPri(){
        System.out.println("权限校验");
    }
}

然后在配置文件中,将这两个类交给Spring管理,注册bean标签
这一步也可以在类上使用注解的方式完成,不过注解的话还需要在配置文件中增加组件扫描的配置。

bean标签的注册:

 
 

同时,在配置文件中还要进行代理的配置,通过AOP的配置完成对目标类的代理:

代理的配置:



    
    
    
    

    
    

    
    
        
        
    

然后编写一个Junit的测试类,同时在这一步中完成Spring与Junit的整合。

目的是为了让Junit帮我们创建Spring工厂,不用每次写测试类的时候都需要去new applicationContext工厂类对象,我们只需要在测试类中定义对象成员,使用@Resource注解为其注入属性即可。

Spring与Junit的整合:

Spring与Junit整合,需要引入一个jar包

spring-test-5.1.5.RELEASE

在这里插入图片描述

同时编写一个测试类test,使用@RunWith 和 ContextConfiguration 类注解,自动为这个类生成一个Spring 工厂,然后就可以正常的在类中使用applicationContext工厂类获取bean对象了,或者适应@Resource 对对象成员进行属性注入。

test:

/*
* Spring整合junit测试单元
* 通过注解来加载xml配置文件,并且自动生成工厂,无需在单元中new工厂
* 只需在测试类中添加类的成员,并且使用@Resource注入属性即可
* */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class testdemo {

    @Resource(name="ProductDao")
    private ProductDao productDao;

    @Test
    public void test(){
        productDao.save();
        productDao.update();
        productDao.del();
        productDao.find();
    }
}

最后运行测试类,输出结果如下:

在这里插入图片描述

你可能感兴趣的:(Java,Spring)