1、新建注解
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})//用于方法之上
public @interface DepartmentIDAnno {
//设置部门id所在的参数位置,从0开始
int departmentIDSeat();
}
2、在方法上使用注解
@DepartmentIDAnno(departmentIDSeat=1)
3、新建切面
@Component
@Aspect
public class DepartmentIDAscept {
@Pointcut("@annotation(com.weld.util.DepartmentIDAnno)")
public void pointCut() {
}
@Around(value="pointCut()&&@annotation(departAnno)")//注解类注入
public Object doSetDepartmentID(ProceedingJoinPoint pjp,DepartmentIDAnno departAnno)throws Throwable{
MethodSignature methodSignature=(MethodSignature) pjp.getSignature();
Method method=methodSignature.getMethod();
//Annotation[][] methodAnnotations=method.getParameterAnnotations();
Object[] args=pjp.getArgs();
int seat= departAnno.departmentIDSeat();
//args[seat]=1;
Object returnValue=pjp.proceed(args);
return returnValue;
}
}
参考文献:https://blog.csdn.net/u013259361/article/details/102913329