使用基于注释的AOP修改控制器响应?

时间:2012-04-12 13:32:24

标签: spring grails groovy aop spring-aop

我正在尝试通过AOP向控制器响应添加标头,我不确定如何访问控制器或控制器的响应。

我该怎么做?

这是我目前的注释:

@Retention(RetentionPolicy.RUNTIME)
@Target([ElementType.METHOD, ElementType.TYPE, ElementType.FIELD])
public @interface NoCaching {
}

这是我目前的方面:

@Aspect
@Component("noCachingAspect")
class NoCachingAspect {

    @Pointcut("@annotation(com.grailsrocks.cacheheaders.NoCaching)")
    public void nameDoesntMatter() {
    }

    @Before("com.grailsrocks.cacheheaders.NoCachingAspect.nameDoesntMatter()")
    public void beforeMethod(JoinPoint joinPoint) throws Throwable {
        println 'hellowoeijf'
    }
}

以下是我如何使用注释:

@NoCaching
    def annotations(){
        println 'bar'
    }

如何访问注释所针对的控制器以修改响应对象?

1 个答案:

答案 0 :(得分:1)

前一段时间我做了一篇关于此事的博客文章,请参阅http://burtbeckwith.com/blog/?p=80