Spring的AOP开发入门,Spring整合Junit单元测试(基于ASpectJ的XML方式)
参考自 https://www.cnblogs.com/ltfxy/p/9882430.html
创建web项目,引入jar包
除了基本的6个Spring开发的jar包外,还要引入aop开发相关的四个jar包:
附jar包链接:链接:https://pan.baidu.com/s/1E_8NA-DcWwt9hdK-czkm9A 提取码:xq8n

除此之外,Spring要整合Junit单元测试的话,还需引入

引入Spring配置文件
引入aop开发的约束
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===============================引入aop开发的约束============================ -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
</beans>
编写目标类与实现类,并完成配置
package spring.day2_aop;
public interface ProductDao {
public void find();
public void save();
public void delete();
public void update();
}
package spring.day2_aop;
public class ProductDaoImp implements ProductDao {
@Override
public void find() {
System.out.println("查询商品。。。");
}
@Override
public void save() {
System.out.println("保存商品。。。");
}
@Override
public void delete() {
System.out.println("删除商品。。。");
}
@Override
public void update() {
System.out.println("修改商品。。。");
}
}

编写测试类
package spring.day2_aop; import javax.annotation.Resource; import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext4.xml")
public class SpringDemo1 { @Resource(name="productDao")
private ProductDao productDao;
@Test
public void demo1() {
productDao.save();
productDao.delete();
productDao.update();
productDao.find();
}
}
运行结果如下:

编写一个切面类并通过aop配置产生代理
package spring.day2_aop;
/*
* 切面类:放入通知的方法即增强的那些方法
*/
public class MyAspectXml {
/*
* 权限校验的方法
*/
public void checkPri() {
System.out.println("权限校验..............");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===============================引入aop开发的约束============================ -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd"> <!-- 配置目标对象:被增强的对象 -->
<bean id="productDao" class="spring.day2_aop.ProductDaoImp"></bean> <!-- 将切面类交给spring管理 -->
<bean id="myAspect" class="spring.day2_aop.MyAspectXml"></bean> <!-- 通过aop的配置来对目标类产生代理 -->
<aop:config>
<!-- 配置切入点,表达式(execution函数)配置当前web项目下哪些类的哪些方法需要增强,*代表任意返回值,..代表任意参数 -->
<aop:pointcut
expression="execution(* spring.day2_aop.ProductDaoImp.save(..))"
id="pointcut1" />
<!-- 配置切面 -->
<aop:aspect ref="myAspect">
<!-- 配置为前置增强 -->
<aop:before method="checkPri" pointcut-ref="pointcut1" />
</aop:aspect>
</aop:config>
</beans>
测试运行

补充:
@Runwith() :用于指定junit运行环境。它是junit提供给其他框架测试用的。这个注解是指定测试的时候使用的执行类,不写的话会使用默认的执行类
@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境
@ContextConfiguration :Spring整合JUnit4测试时,使用注解引入多个配置文件
单个文件时:
@ContextConfiguration(Locations="classpath:applicationContext.xml")
多个文件时:可用{}
@ContextConfiguration(Locations = { "classpath:spring1.xml", "classpath:spring2.xml" })
Spring的AOP开发入门,Spring整合Junit单元测试(基于ASpectJ的XML方式)的更多相关文章
- 十二 Spring的AOP开发入门,整合Junit单元测试(AspectJ的XML方式)
创建web项目,引入jar包 引入Spring配置文件
- 【AOP】操作相关术语---【Spring】的【AOP】操作(基于aspectj的xml方式)
[AOP]操作相关术语 Joinpoint(连接点):类里面哪些方法可以被增强,这些方法称为连接点. Pointcut(切入点):在类里面可以有很多的方法被增强,比如实际操作中,只是增强了类里面add ...
- 基于AspectJ的XML方式进行AOP开发
-------------------siwuxie095 基于 AspectJ 的 XML 方式进行 AOP 开发 1 ...
- Spring的AOP开发(基于AspectJ的XML方式)
Spring的AOP的简介: AOP思想最早是由AOP联盟组织提出的.Spring是使用这种思想最好的框架 Spring的AOP有自己实现的方式(非常繁琐). Aspect是一个AOP的框架, Spr ...
- Spring框架的事务管理之基于AspectJ的XML方式(重点掌握)
1. 步骤一:恢复转账开发环境(转账开发环境见“https://www.cnblogs.com/wyhluckdog/p/10137283.html”) 2.步骤二:引入AOP的开发包3.步骤三:引入 ...
- Spring事务管理之声明式事务管理-基于AspectJ的XML方式
© 版权声明:本文为博主原创文章,转载请注明出处 案例 - 利用Spring的声明式事务(AspectJ)管理模拟转账过程 数据库准备 -- 创建表 CREATE TABLE `account`( ` ...
- Spring _day02_IoC注解开发入门
1.Spring IoC注解开发入门 1.1 注解开发案例: 创建项目所需要的jar,四个基本的包(beans core context expression ),以及两个日志记录的包,还要AOP的包 ...
- Spring的AOP基于AspectJ的注解方式开发3
上上偏博客介绍了@Aspect,@Before 上篇博客介绍了spring的AOP开发的注解通知类型:@Before,@AfterThrowing,@After,@AfterReturning,@Ar ...
- 【spring 注解驱动开发】spring事务处理原理
尚学堂spring 注解驱动开发学习笔记之 - 事务处理 事务处理 1.事务处理实现 实现步骤: * 声明式事务: * * 环境搭建: * 1.导入相关依赖 * 数据源.数据库驱动.Spring-jd ...
随机推荐
- Linux--Introduction and Basic commands(Part one)
Welcome to Linux world! Introduction and Basic commands--Part one J.C 2018.3.11 Chapter 1 What Is Li ...
- Redis学习笔记(2)-新建虚拟电脑,安装系统CentOSMini
下载CentOSMini download 点击download,网页显示结果如下 点击红框,跳转至镜像页面,选择任一镜像,下载即可. 新建虚拟机,装载CentOSMini 点击新建 输入名称 输入C ...
- .Net NPOI 根据excel模板导出excel、直接生成excel
一.根据Excel模板导出excel 1.导入NPOI.dll 2.DAL中添加类ExportExcel.cs using NPOI.SS.UserModel; using System; usin ...
- mysql的coalesce使用技巧
今天无意间发现mysql的coalesce, coalesce()解释:返回参数中的第一个非空表达式(从左向右依次类推): 使用示例:a,b,c三个变量. ,); // Return 2 select ...
- (7)Jquery1.8.3快速入门_内容过滤选择器
一.Jquery的内容过滤选择器: 内容过滤选择器: 1.:contains(text) 选取含有文本内容为text的元素 2. :empty 选取不包含子元素或者文本为空的元素 3.:has(sel ...
- 4 ;XHTML表格
1.表格的基本格式 2.<table>标签下的常用属性 3.<table>标签下的边框设置 4.<tr><th><td>标签下的常用属性 5 ...
- div添加cursor:pointer;失效问题。
如果你不小心给其它盒子设置了z-index属性显示在最上层而又没有将该盒子进行隐藏. <style> .bottom { position: absolute; width:100px; ...
- angular分页插件tm.pagination 解决触发二次请求的问题
angular分页插件tm.pagination(解决触发二次请求的问题) DEMO: http://jqvue.com/demo/tm.pagination/index.html#?current ...
- 下载使用前端开发工具sublime,并汉化
官网:www.sublimetext.com 汉化流程:安装package control 1.打开“https://packagecontrol.io/installation”,先下载“packa ...
- 【读书笔记】iOS-使用钥匙串保护数据
一,将应用从设备上删除时,并不会删除其钥匙串项,这使得调试工作困难得多.模拟器有一个Reset Contents and Settings选项,可用于将钥匙串项移除.因此,强烈建议在模拟器上确定Key ...