0

该服务是一个spring bean,它是@autowired 进入我的班级:

public class MyClass {
    @Autowired
    private Service service;

    private void myMethod() {
        service.call();
    }
}

call() 方法可能会抛出异常,所以我用 try-catch 行包装它:

public class MyClass {
    @Autowired
    private Service service;

    private void myMethod() {
        try {
            service.call();
        } catch (Exception e) {
            // do some logging
        }
    }
}

如何编写自定义注释并自动执行此操作?像这样:

public class MyClass {
    @Monitored
    @Autowired
    private Service service;

    private void myMethod() {
        // it will be logged if call() throws exception
        service.call();
    }
}

谢谢你的帮助。

4

2 回答 2

0

例子有很多,例如基于Spring Annotation的AOP拦截父类中实现的方法基于Spring Annotation的AOP和拦截球

于 2013-04-08T13:16:53.467 回答
0

你应该有一个advice你想要的方法。point-cut并为您想要被拦截的方法定义一个。查看内容以获取有关不同类型建议的更多信息(我相信您的情况BeforeAfter或是Around合适的)和一些示例。

于 2013-04-08T13:37:34.770 回答