【发布时间】:2012-08-07 02:23:02
【问题描述】:
我是 Spring 的新手,并尝试使用带有 @Controller 注释注释的控制器内部的 @Value("${loginpage.message}") 注释注入一个带有值的字符串,并且我的字符串的值被评估为字符串 "${loginpage.message}" 和不是我的属性文件中的内容。
下面是我的控制器,带有我要注入的字符串“消息”。
@Controller
public class LoginController extends BaseController {
@Value("${loginpage.message}")
private String message;
@RequestMapping("/")
public String goToLoginPage(Model model) {
model.addAttribute("message", message);
return "/login";
}
}
我的应用程序上下文如下所示:
<context:property-placeholder location="classpath:properties/application.properties" />
<context:annotation-config />
<context:component-scan base-package="com.me.application" />
我的属性文件有一行:
loginpage.message=this is a test message
Spring 必须在某个时候获取该值,因为每当我将 @Value("${loginpage.message}") 更改为不在属性文件中的值(如 @Value("${notInPropertiesFile}"))时,都会出现异常。
【问题讨论】:
-
Chris 的回答应该可以确保属性文件在项目类路径中,如果它要在外部战争中,那么应该在应用程序上下文中使用属性占位符。它应该可以工作。
标签: spring properties