如何在 application.properties - Spring Boot 中表示 Map
How to represent Map in application.properties - Spring Boot
我在 xml 中定义了这个老式的 bean:
<bean id="configReport" class="com.foo.config.ConfigReport">
<property name="templates">
<map>
<entry key="1">
<list>
<bean p:template="opt1" p:name="OPT1"
class="com.foo.config.ConfigReportTemplate" />
</list>
</entry>
<entry key="-2">
<list>
<bean p:template="opt-2" p:templateExtension="xlsx" p:name="OPT-2"
class="com.foo.config.ConfigReportTemplate" />
</list>
</entry>
</map>
</property>
<property name="defaultTemplate">
<bean p:template="empty" p:name="Empty"
class="com.foo.config.ConfigReportTemplate" />
</property>
</bean>
我想通过 中的注释替换此 bean 以使用 application.properties
(配置)。普通对象没问题,但对我来说很难在 application.properties
中呈现这个 <map>
条目
以简单的 application.properties
格式声明 Map
属性看起来一团糟,我建议您考虑对这些属性使用 JSON 格式。它提供了一个更具可读性的视图,像这样:
{
"reportTemplates": {
1: {
"template": "com.foo.config.FirstTemplate",
"name": "OPT1"
},
2: {
"template": "com.foo.config.SecondTemplate",
"name": "OPT2"
},
"KEY" : {
"field":"value"
},
...
}
}
现在您可以在 java 配置中使用此配置文件来构建必要的模板。
您可以在此处阅读 Spring 中如何使用 JSON 属性:https://www.baeldung.com/spring-boot-json-properties
我在 xml 中定义了这个老式的 bean:
<bean id="configReport" class="com.foo.config.ConfigReport">
<property name="templates">
<map>
<entry key="1">
<list>
<bean p:template="opt1" p:name="OPT1"
class="com.foo.config.ConfigReportTemplate" />
</list>
</entry>
<entry key="-2">
<list>
<bean p:template="opt-2" p:templateExtension="xlsx" p:name="OPT-2"
class="com.foo.config.ConfigReportTemplate" />
</list>
</entry>
</map>
</property>
<property name="defaultTemplate">
<bean p:template="empty" p:name="Empty"
class="com.foo.config.ConfigReportTemplate" />
</property>
</bean>
我想通过 application.properties
(配置)。普通对象没问题,但对我来说很难在 application.properties
<map>
条目
以简单的 application.properties
格式声明 Map
属性看起来一团糟,我建议您考虑对这些属性使用 JSON 格式。它提供了一个更具可读性的视图,像这样:
{
"reportTemplates": {
1: {
"template": "com.foo.config.FirstTemplate",
"name": "OPT1"
},
2: {
"template": "com.foo.config.SecondTemplate",
"name": "OPT2"
},
"KEY" : {
"field":"value"
},
...
}
}
现在您可以在 java 配置中使用此配置文件来构建必要的模板。
您可以在此处阅读 Spring 中如何使用 JSON 属性:https://www.baeldung.com/spring-boot-json-properties