java - 让 Spring @Value 注释与 Grails 一起使用

标签 java spring grails

我在 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/

相关文章:

grails - 外部化 Grails 3 Spring 安全配置

grails - Grails 如何使 `params` 可用于单例 Controller ? (Grails 内部结构)

java - 复杂度等级

java - Spring集成回调方法

java - Spring Boot中@RequestMapping和Locale有什么关系?

java - Oracle程序转java批处理

java.net.BindException : bind failed: EACCES (Permission denied) when trying to create DatagramSocket for UDP connection

java - 在字符串中使用 switch

javascript - React 根据结果数量动态创建按钮

hibernate - Grails GORM( hibernate )查询