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

2022-09-01 20:21:26

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

实际上,我做这样的事情:

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

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

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


答案 1

应该可以在 中使用占位符,例如 。有关更多详细信息,请查看文档@RequestMapping@RequestMapping("${foo.bar}")

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


答案 2

谢谢你的帮助。这是我的贡献...不需要依赖关系,因为 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 {
//

推荐