我正在使用 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/