我正在尝试调用before建议,但是使用定义的切入点不会执行相同的操作
我的包com.my.ms中有主要应用
@SpringBootApplication
@EnableAspectJAutoProxy
public class TemplateServiceApplication {
public static void main(String[] args) {
SpringApplication.run(TemplateServiceApplication.class, args);
}
}
在com.my.ms.tst.advices包中,我有之前的建议
@Aspect
public class ValidatingAdvices {
@Before(value = "execution(* com.my.ms.tst.api.*.get*(..))")
public void validateKey(JoinPoint joinPoint) throws Throwable {
System.out.println("Executing the before advice");
}
}
控制器位于com.my.ms.tst.api包中
@Controller
@RequestMapping("/ts")
public class MainController {
@GetMapping("/check")
public String getTemp() throws IOException {
return "five";
}
}
但是下面的建议没有得到执行
答案 0 :(得分:0)
您在 ValidatingAdvices 中添加@Configuration批注。
@Configuration
@Aspect
public class ValidatingAdvices {
@Before(value = "execution(* com.my.ms.tst.api.*.get*(..))")
public void validateKey(JoinPoint joinPoint) throws Throwable {
System.out.println("Executing the before advice");
}
}
答案 1 :(得分:0)
您也可以使用@Component而不是@Configuration,或者如果已经使用@component类,那么可以,但是请确保ValidatingAdvices类不必使用@Bean。 Click here以获取更多参考。
@Component // @Configuration
@Aspect
public class ValidatingAdvices {
@Before(value = "execution(* com.my.ms.tst.api.*.get*(..))")
public void validateKey(JoinPoint joinPoint) throws Throwable {
System.out.println("Executing the before advice");
}
}