我想使用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脚本中获取组件。
答案 0 :(得分:1)
由于您使用的是Groovy,因此需要单引号@Value('${foo}')
,因为在Spring有机会查看自己的上下文之前,Groovy会将双引号作为GString选取。