解决方法
定义自定义注释;
@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="); } }