带有spring的groovy脚本中java类的属性配置

时间:2015-01-03 00:12:51

标签: java spring groovy

我想使用Groovy脚本来使用一些带有弹簧注释的java类:

@Component
class SomeUtility {
    @Value("${foo}")
    public string String fooValue;
}

理想情况下,我想在foo文件中以与spring-boot相同的方式配置application.properties

我尝试在类路径中添加spring并在groovy脚本中运行类似的东西:

def ctx = new GenericApplicationContext()
new ClassPathBeanDefinitionScanner(ctx).scan('dylan')
ctx.refresh()
def b = ctx.getBean(SomeUtility)
println b.fooValue

但输出是${foo},无论属性文件是否到位 - 所以我猜@Value值处理没有发生。

我也尝试将spring-boot添加到类路径并运行上面的脚本 - 但我怀疑在这种情况下我实际上并没有触发spring-boot。

我有什么方法可以做到这一点 - 我想要的是能够轻松配置值然后在groovy脚本中获取组件。

1 个答案:

答案 0 :(得分:1)

由于您使用的是Groovy,因此需要单引号@Value('${foo}'),因为在Spring有机会查看自己的上下文之前,Groovy会将双引号作为GString选取。