如何在 Java中运行方面. 如何在没有xml文件的情况下使用注释在Spring中运行方面? 许多其他教程使用xml文件进行配置ascpect. 定义自定义注释; @Target({ElementType.TYPE ,ElementType.METHOD})@Retentio
如何在没有xml文件的情况下使用注释在Spring中运行方面?
许多其他教程使用xml文件进行配置ascpect.
定义自定义注释;@Target({ElementType.TYPE ,ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited public @interface Loggable { }
注释要拦截的方法;
@Service public class MyAwesomeService { @Loggable public void myAwesomemethod(String someParam) throws Exception { // do some awesome things. } }
将方面依赖项添加到您的pom.
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </dependency>
并定义你的方面类;
@Aspect @Component public class LoggingHandler { @Before("@annotation(com.example.annotation.Loggable)") public void beforeLogging(JoinPoint joinPoint){ System.out.println("Before running loggingAdvice on method="); } @After("@annotation(com.example.annotation.Loggable)") public void afterLogging(JoinPoint joinPoint){ System.out.println("After running loggingAdvice on method="); } }