配置文件
- applicationContext.xml配置
1 | <!-- 配置切面所需要的目标类型 --> |
<aop:pointcut/>
配置切入点<aop:aspect/>
配置切面实现类- expression属性配置要执行切面的方法的表达式
切面实现类
1 | package aop.aspect; |
切面表达式详解
- modUser(..) :表示匹配所有方法名称为modUser的方法
- mod*(..) :表示匹配所有方法名以mod开头的方法
- mod*(String,..) :表示匹配所有方法名以mod开头且第一个参数为String类型的方法
- mod(String,) :表示匹配所有方法名以mod开头、有两个参数且第一个参数为String类型的方法
- com.scxh.dao.impl..mod(..):表示匹配com.scxh.dao.impl包下所有类中以mod开头的方法
- com.scxh.dao...mod*(..):表示匹配com.scxh.dao包下所有类中以mod开头的方法
- com.scxh.dao..UserDaoImpl.(..):表示匹配com.scxh.dao包下所有UserDaoImpl类中的所有方法
- com..dao..UserDaoImpl.mod*(..)):表示匹配com包下二级子包名为dao中的所有UserDaoImpl类中的所有以mod开头的方法
测试代码
- 要执行切面的方法
1 | package dao.impl; |
- 测试执行
1
2
3
4
5
6
7
8
9
10
11
12
13
14package test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import dao.impl.UserDaoImpl;
public class TestAop {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("/applicationContext.xml");
UserDaoImpl userDaoImpl = (UserDaoImpl)context.getBean("userDao", UserDaoImpl.class);
userDaoImpl.modUser();
}
}