2015-10-20 59 views
0

我想在我的应用程序中使用Spring Boot配置,但是,有一件事我不喜欢它。我的应用程序处于早期开发阶段,属性键可能会更改。通常,我使用公共静态String常量作为属性名称,所以无论何时一个键发生更改,我只需要在一个地方更改它。有了这样说,我就必须配置这样我的应用程序:在Spring @Value注释中省略美元占位符

@Value("${" + AppConstants.SOME_STRING_PROPERTY + "}") 
private String someProperty; 

是否有任何“清洁”的方式来实现这一目标,可能不使用${}占位所有的时间?

+0

理想值改变,而不是键。但没关系,如果是这种情况。我不知道如何实现这一点,但我知道Intellij也可以重构这个,所以你只会在一个地方改变。 –

+0

正如我所说,关键的变化是在这个工作阶段的设计变更的结果。另外,拥有一个具有属性键的类可以充当开发人员文档 - 与搜索所有@Value注释事件相比,以这种方式查找所有配置选项更为轻松。我还想避免用IDE手动重构,因此我首先使用Spring这样的工具。 – nachteil

+1

除非您愿意编写自己的注释和后处理器,否则不能省略'$ {}'。 –

回答

1

看看@ConfigurationProperties功能。您可以将整个配置文件导入到没有任何美元符号的Java POJO中。您还可以使用验证注释验证配置,并且您可以获得类型安全性。