Java 注释属性RequestMapping.value的值必须是常量表达式
使用以下代码段时:Java 注释属性RequestMapping.value的值必须是常量表达式,java,spring-mvc,url-routing,Java,Spring Mvc,Url Routing,使用以下代码段时: 公共类myurl{ //使用静态{…}初始化属性 公共最终静态字符串URL_HOMEPAGE=properties.getProperty(“app.HOMEPAGE”); } @控制器 公共类主页控制器{ @请求映射(myurl.URL\u主页) 公共字符串主页(){ 返回“/主页/索引”; } } 我得到以下错误: 注释属性RequestMapping.value的值必须是常量表达式 但事实上,URL\u HOMEPAGE确实是一个常量,因为它被声明为public f
公共类myurl{
//使用静态{…}初始化属性
公共最终静态字符串URL_HOMEPAGE=properties.getProperty(“app.HOMEPAGE”);
}
@控制器
公共类主页控制器{
@请求映射(myurl.URL\u主页)
公共字符串主页(){
返回“/主页/索引”;
}
}
我得到以下错误:
注释属性RequestMapping.value的值必须是常量表达式
但事实上,
URL\u HOMEPAGE
确实是一个常量,因为它被声明为public final static
。我错了吗?如何解决此问题?它是一个常量,但在初始化请求映射后初始化。
您正在调用properties.getProperty(“app.homepage”)代码>
当类加载器加载您的类时,URL\u主页尚未初始化,因此出现错误。
您需要提供一个初始化字符串作为参数,例如“/path/subpath”虽然URL\u HOMEPAGE
是一个常量,但其值可能不是,只能在运行时确定。我相信注释中使用的值在编译时必须是可解析的