创建一个切面类
package com.test.service.aspect;
import org.aspectj.lang.ProceedingJoinPoint;
//切面
public class PermissionAspect {
public void cheakPermission(){
System.out.println("校验权限");
}
/*
* 计算某个方法的执行时间
* */
public void timeMethod(ProceedingJoinPoint proceedingJoinPoint){
long l = System.currentTimeMillis();
try {
proceedingJoinPoint.proceed();
} catch (Throwable throwable) {
throwable.printStackTrace();
}
long l1 = System.currentTimeMillis();
System.out.println(l1-l);
}
}
创建一个接口
package com.test.service;
public interface UserService {
void add();
void delete();
void update();
void select();
}
接口的实现类
package com.test.service.impl;
import com.test.service.UserService;
public class UserServiceImpl implements UserService {
@Override
public void add() {
System.out.println("执行添加操作");
}
@Override
public void delete() {
System.out.println("删除添加操作");
}
@Override
public void update() {
System.out.println("修改添加操作");
}
@Override
public void select() {
System.out.println("查询添加操作");
}
}
applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<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">
<!--ioc-->
<bean id="userService" class="com.test.service.impl.UserServiceImpl"></bean>
<!--对切面类进行ioc配置-->
<bean id="permissionAspect" class="com.test.service.aspect.PermissionAspect"></bean>
<!--配置aop配置-->
<aop:config>
<!--声明一个切入点
id:切入点的唯一表示
expression:切入点表达式(切入点指示符)
-->
<aop:pointcut id="pointcut1"
expression="execution(* com.test.service.impl.*.*(..))"/>
<!--声明一个切面-->
<aop:aspect id="aspect1" ref="permissionAspect">
<!--配置通知-->
<aop:before pointcut-ref="pointcut1" method="cheakPermission"/>
<aop:around method="timeMethod" pointcut="execution(* com.test.service.impl.UserServiceImpl.delete())"></aop:around>
</aop:aspect>
</aop:config>
</beans>