Grails:如何使用bean构建DSL指定Spring组件扫描排除项

时间:2014-12-19 22:51:27

标签: spring grails groovy component-scan

我有一些使用注释声明的Spring组件,我需要在Grails应用程序中使用它们。

我需要做的是使用resources.groovy中的BeanBuilder DSL从基础包中进行组件扫描,同时排除包内的一些组件。这就是我使用XML配置实现这一目标的方法:

<context:component-scan base-package="my.base.package" >
     <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

在docs(http://grails.org/doc/latest/guide/spring.html#theBeanBuilderDSLExplained中,使用Spring命名空间一节)是关于如何在BeanBuilder中使用Spring命名空间的一些提示。例如,这可以有效地导入my.base.package中的所有组件:

xmlns context:"http://www.springframework.org/schema/context"
context.'component-scan'('base-package': "my.base.package")

但我不知道如何使用BeanBuilder DSL语法通过嵌套context:exclude-element指定排除过滤器。我尝试了以下,但无济于事:

xmlns context:"http://www.springframework.org/schema/context"
context.'component-scan'('base-package': "webcat.purchaseorder") {
    context.exclude-filter(type:"annotation", expression:"org.springframework.stereotype.Controller") 
}

有人能指出我正确的方向吗?我也尝试将xml放在一个文件中,然后通过importBeans导入它,这确实有用,但我真的很想直接使用DSL语法。

1 个答案:

答案 0 :(得分:1)

尝试

  

context。&#34; exclude-filter&#34;(type:&#34; annotation&#34;,expression:&#34; org.springframework.stereotype.Controller&#34;)