2016-11-15 94 views
0

让我们暂时忽略这样做是否是一个好主意,但是我为内部库创建Spring Boot AutoConfiguration,并且作为其中的一部分,我想自动注册一个接受GET/POST/DELETE请求的控制器(它负责为应用程序测试目的设置/清除cookie值)静态使用@ConfigurationProperties - 比如在@RequestMapping

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

理想我能在我的控制器引用这像这样:@RequestMapping(path=${my.configs.path})但这不起作用,春季报告说,它无法找到那个配置参数,如果我把它放到一个属性文件中而不是安全的类型安全的@ConfigurationProperties它按预期工作。

我知道我可以通过在Request映射中添加一个默认值来解决这个问题,但我想知道这里发生了什么,以及为什么我无法静态地将环境变量读取/默认设置为@ConfigurationProperties我可以在文件中定义那些。

回答

0

@RequestMapping是一个Spring MVC注释,它被Spring MVC处理 - 无论它是否全部包装在Spring Boot应用程序中。

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

相关问题