在我的应用程序中,我有十几个属性映射到我的bean属性:
@Value("#{props['prop1']}")
private String prop1;
@Value("#{props['prop2']}")
private String prop2;
@Value("#{props['prop3']}")
private String prop3;
在我的属性文件中,我总是需要定义值:
prop1=value1
prop2=value2
prop3=specific-value
它很重,因为大多数属性通常是相同的。我宁愿在我的代码中定义默认值,然后覆盖我在属性文件中需要的内容。代码可能如下所示:
@Value("#{props['prop1'] ?: value1}")
private String prop1;
@Value("#{props['prop2'] ?: value2}")
private String prop2;
@Value("#{props['prop3'] ?: value3}")
private String prop3;
在我的属性文件中,我只需更改prop3
:
prop3=specific-value
这很方便,因为我们有一个更容易维护的小属性文件。通过根据启用的配置文件选择正确的属性文件,Spring启动也可以提供更多帮助。
现在我有一个问题:作为开发人员,我如何知道应用程序中的所有配置点?如果我们被迫将所有属性添加到属性文件中,那么我们可以轻松地获得支持的属性列表。然而,对于只定义了少数属性的方法,我们失去了这个好处,知道可以更改哪些属性变得棘手。
我很想知道这个问题之前和之前是如何解决的。我希望有一个像maven插件这样的实用工具可以扫描我的bean,在其中检测用@Value
注释的属性,并打印一个包含应用程序中定义的所有属性及其默认值的表。