Używam Spring Boot, i chciałbym użyć z nim AspectJ.@EnableAspectJAutoProxy nie działa
następujące prace (oczywiście):
@Aspect @Component public class RequestMappingAspect { @Before("@annotation(org.springframework.web.bind.annotation.RequestMapping)") public void advice(JoinPoint joinPoint) { ... } }
Jednak jeśli @Component
jest usuwany i @EnableAspectJAutoProxy
dodaje się następujące nie działa.
@SpringBootApplication @EnableSwagger2 @EnableAspectJAutoProxy public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
Jak poprawnie włączyć Auto proxy AspectJ?
Z '@ EnableAspectJAutoProxy' nie używasz AspectJ, ale opartego na proxy Spring AOP. Ale prawdopodobnie tego właśnie chcesz. – kriegaex
Oczywiście, że nie zadziała ... Jeśli usuniesz '@ Component', nie zostanie utworzona żadna instancja tego aspektu, a więc żadne aspekty nie będą dostępne, więc nic do użycia. Aby to działało, potrzebujesz zarówno '@ Component' i' @ Aspect' (lub zdefiniuj aspekt jako metodę @ @ Bean'). Tak czy inaczej, musi być tam instancja aspektu, aby działała. –