我有几个@RequestMapping
某个值在某一天会从“/ XXX”更改为“/ V100”。所以我需要在属性中定义它。我用谷歌搜索,并使用application.properties,但我必须在用户定义的属性中保留“/ XXX”值,如“local.properties”。是否可以在用户定义的属性上定义@RequestMapping
值?
@Controller
@RequestMapping("/XXX")
public class MyController {
...
}
** 更新:尝试了几个小时并让它发挥作用。
my.properties
api.version=V100
MVC-context.xml中
<context:property-placeholder ignore-unresolvable="true" location="/WEB-INF/config/property/my.properties"/>
控制器
@RequestMapping("/${api.version}")
tomcat log
localhost-startStop-1> [2016-04-28 15:01:35.410] [INFO] [RequestMappingHandlerMapping] [534] Mapped "{[/V100/detail],methods=[GET]}"...
答案 0 :(得分:1)
除了@JustinB提供的xml解决方案之外,这里还有一个仅注释解决方案(使用Spring Boot测试):
@Controller
@PropertySource(value = "classpath:/user.properties", ignoreResourceNotFound = true)
@RequestMapping("/${api.version:}")
public class MyController {
...
}
从{em> src / main / resources / user.properties 中读取api.version
的值(如果存在)。如果文件丢失或未设置api.version
,则默认为空字符串。
请注意,如果 application.properties 中也定义了api.version
,则 user.properties 是否存在且api.version
是否优先设置在其中。
提供了更多@PropertySource示例here。