如题,一个springboot项目,mapper接口上有自定义的类型级注解PrivateDatasource,
表达式如下:
@Around("execution(* com.nbst.dao.mapper.idevcloudweb.*.*(..)) && @target(privateDatasource)")
切接口是切不到注解,但是自己给一个普通类上加上注解就可以切到,请问有大佬能给解答一下么
切面类:
@Aspect
@Component
public class DataSourceAspect {
@Around("execution(* com.nbst.dao.mapper.idevcloudweb.*.*(..)) && ( @target(privateDatasource) || @annotation(privateDatasource) )")
public Object beforeMapper(ProceedingJoinPoint joinPoint,PrivateDatasource privateDatasource){
Signature sig = joinPoint.getSignature();
String method = sig.getName();
System.out.println("方法名:"+sig.getName());
if(privateDatasource == null){
Object target = joinPoint.getTarget();
privateDatasource = target.getClass().getAnnotation(PrivateDatasource.class);
}
System.out.println(privateDatasource.value());
return null;
}
}
mapper接口:
@PrivateDatasource
public interface CompanyMapper
同一路径下的用于测试的类:
@PrivateDatasource
@Component
public class Test {
public void say(){
System.out.println("test");
}
}
根本切不到带注解的接口,也就是无法注入注解对象作为参数,但是普通类是可以切到、并且将注解对象作为参数注入的