我在 Grails 2.3.4 应用程序中使用 Spring bean 时遇到 @Value 注释问题。
我有一个单独的 jar 作为 Grails 依赖项。 jar 里有注释的 bean :
@Named
public class Bean {
@Value("${client.environment}")
private String environment;
....
}
我已经在 Config.groovy 中设置了该属性。
...
client.environment = "DEV"
...
当我在 IntelliJ IDEA 中运行 Grails 时,该属性起作用并且 @Value 带注释的变量会自动填充。但是当我将 war 部署到独立的 Jetty 实例时,相同的属性尚未初始化,其值改为“${client.environment}”。
我已经尝试了几个小时来检查所有生产和开发设置,以便它们不会更改任何内容。我还尝试了多种解决方案来在 Grails 中加载属性,甚至尝试在 resources.groovy 中设置 propertyPlaceholderConfigurer 但没有任何帮助。
最佳答案
Spring 的 @Value 注释需要单引号才能工作(在 Grails 4 上测试):
import org.springframework.beans.factory.annotation.Value;
public class Bean {
@Value('${client.environment}')
String environment;
...
}
关于java - 让 Spring @Value 注释与 Grails 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23808733/