Spring:在属性文件中定义@RequestMapping值

时间:2015-08-09 12:55:14

标签: java spring spring-mvc annotations

是否可以通过在属性文件中定义@RequestMapping注释来定义它的值?

实际上,我做了类似的事情:

@Controller
@RequestMapping("/xxx")
public class MyController {
...
}

但我想将路径/xxx存储在属性文件中。为什么?例如,如果我重命名控制器中的路径,则不太可能在模板中进行myst​​akes。

在其他框架中,这是允许的(例如,参见Symfony)。

2 个答案:

答案 0 :(得分:21)

应该可以在@RequestMapping中使用占位符,例如@RequestMapping("${foo.bar}")。请查看{{3}}了解更多详情:

  

@RequestMapping注释中的模式支持${…​}占位符对本地属性和/或系统属性和环境变量。在控制器映射到的路径可能需要通过配置进行自定义的情况下,这可能很有用。有关占位符的更多信息,请参阅PropertyPlaceholderConfigurer类的javadoc。

答案 1 :(得分:0)

谢谢。这是我的贡献 不需要依赖,因为maven会自己做所有事情。

在属性文件中-使用maven插值,如下所示:

vs= v1

us= users
me= messages

url.user=${vs}/${us}
url.mess=${vs}/${me}

在您的命运文件中,例如控制器/资源(在mycase中):

@RestController
//@RequestMapping("v1/users") <<<<<<instead this
@RequestMapping("${url.user}")<<<<<<use this
@Api(value = "API RESTFUL)
public class UserResource {
//