我使用的是Spring Boot,我想用它來使用AspectJ。@EnableAspectJAutoProxy不起作用
下面的作品(當然):
@Aspect @Component public class RequestMappingAspect { @Before("@annotation(org.springframework.web.bind.annotation.RequestMapping)") public void advice(JoinPoint joinPoint) { ... } }
但是,如果@Component
被移除,並添加@EnableAspectJAutoProxy
,以下是行不通的。
@SpringBootApplication @EnableSwagger2 @EnableAspectJAutoProxy public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
如何正確啓用AspectJ自動代理?
隨着'@ EnableAspectJAutoProxy'你不使用AspectJ,而是使用基於代理的Spring AOP。但可能這就是你想要的。 – kriegaex
Ofcourse它不會工作...我刪除'@ Component'不會創建方面的實例,因此沒有可用的方面,所以沒有用。您需要'@ Component'和'@ Aspect'來使它工作(或者將方面定義爲'@ Bean'方法)。無論哪種方式,該方面的一個實例必須在那裏才能實現。 –