java - 如何使用Spring在Java中将一个属性使用到另一个属性中?

标签 java spring spring-mvc properties

我正在使用 Spring MVC 4.0.2 进行 Web 开发。我正在尝试声明我的属性 (app.properties) 文件,如下所示。

login.view=login
login.url=/${login.view}

现在,如果我尝试像这样访问 login.url,

@RequestMapping(value = "${login.url}", method = RequestMethod.GET)
public String login(ModelMap model)
{ 
      return "login";
}

工作正常。

但是当我尝试像这样访问相同的属性时,

String s = (String)PropertiesLoaderUtils.loadProperties(new ClassPathResource("app.properties")).getProperty("login.url");

我得到输出:${login.url},应该是/login。我不明白为什么会发生。有什么想法吗?

最佳答案

对于发生这种情况的原因,Sotirios 的回答是正确的。您可以使用 @Value 注入(inject),而不是通过 PropertiesLoaderUtils 加载...

进入构造函数:

public MyClass(@Value("${login.url}") String loginUrl) {...}

或字段:

@Value("${login.url}")
private String loginUrl;

或 setter :

@Value("${login.url}")
public void setLoginUrl(String loginUrl) {
  this.loginUrl = loginUrl;
}

关于java - 如何使用Spring在Java中将一个属性使用到另一个属性中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099691/

相关文章:

java - 如何调整我的 toString 方法以处理多个输入

java - 是否有任何库可以在 Java 中使用 RFC 3548 对字符串进行 Base64 编码/解码

java - Spring : Default html error page is not properly displayed?

java - 跟踪 eclipse 中的变化

java - 使用进度回调将文件或 InputStream 上传到 S3

java - 在 Mac 上使用哪个 Eclipse 版本? (碳或 cocoa )

java - SpelEvaluationException : EL1004E:(pos 0): Method call: Method hasPermission(java. lang.String) 在 MethodSecurityExpressionRoot 类型上找不到

java - 如何在 JPA 中映射复合主键,其中主键的一部分是外键

model-view-controller - 把这样的业务逻辑放在哪里?服务与 DAO?

java - Spring - 如何处理bean中的空值