如何在没有xml的Spring中运行方面?

时间:2017-05-02 10:47:35

标签: java spring aop spring-aop aspect

如何在Java中运行方面。

如何在没有 xml 文件的情况下使用注释在 Spring 中运行方面?

许多其他教程使用xml文件进行配置ascpect。

2 个答案:

答案 0 :(得分:4)

定义自定义注释;

@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=");
    }
}

答案 1 :(得分:0)

在课堂上使用注释: @零件 @Aspect