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

2022-01-13 00:00:00 annotations spring java spring-mvc

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

Is it possible to define the value of a @RequestMapping annotation in Spring by defining it in a properties file?

实际上,我会这样做:

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

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

But I would like to store the path /xxx in a properties file. Why? For instance, it is less likely that I do mystakes in my templates if I rename the path in the controller.

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

In other framework this is allowed (see Symfony, for instance).

推荐答案

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

It should be possible to use placeholders in @RequestMapping, like for example @RequestMapping("${foo.bar}"). Take a look at the documentation for more details:

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

Patterns in @RequestMapping annotations support ${…​} placeholders against local properties and/or system properties and environment variables. This may be useful in cases where the path a controller is mapped to may need to be customized through configuration. For more information on placeholders, see the javadocs of the PropertyPlaceholderConfigurer class.

相关文章