在不执行建议之前

时间:2018-06-28 06:26:51

标签: java spring aop

我正在尝试调用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";
}

}

但是下面的建议没有得到执行

2 个答案:

答案 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");
 }

}