静态使用@ConfigurationProperties - 例如on @RequestMapping

时间:2016-11-15 16:15:49

标签: spring spring-boot spring-web

让我们暂时忽略这样做是否是一个好主意,但是我为内部库创建了Spring Boot AutoConfiguration,作为其中的一部分,我想自动注册一个接受GET的Controller / POST / DELETE请求(它负责为应用程序测试目的设置/清除cookie值)

问题是我希望最终用户可以配置请求映射路径。我有一个@ConfigurationProperties(prefix = "my.configs")类,其中包含所有配置值及其默认值,例如:private String path = "default-path"

理想情况下,我可以在我的控制器中引用它,如下所示:@RequestMapping(path=${my.configs.path})但这不起作用,Spring报告说如果我将它放入属性中,它无法找到该配置参数文件而不是类型安全@ConfigurationProperties它按预期工作。

我知道我可以通过在Request映射中添加一个默认值来解决这个问题,但是我想了解这里发生了什么,以及为什么我不能静态地将读取/默认的环境变量引用到{{1以我在文件中定义的方式。

1 个答案:

答案 0 :(得分:0)

@RequestMapping是一个Spring MVC注释,它由Spring MVC处理 - 无论它是否都包含在Spring Boot应用程序中。

另一方面,

@ConfiguationProperties是100%Spring Boot代码,据我所知,在Spring Context启动生命周期的不同时刻处理这两种属性。