Как изобразить карту в application.properties - Spring Boot - PullRequest
0 голосов
/ 17 июня 2019

У меня этот боб старой моды определен в xml:

<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 (config) через аннотации, как в этот вопрос . Это нормально с простыми объектами, но для меня довольно трудно представить эти <map> записи в application.properties

1 Ответ

1 голос
/ 18 июня 2019

Объявление Map свойств в простом формате application.properties выглядит беспорядочно, я могу предложить вам рассмотреть использование формата JSON для этих свойств.Он обеспечивает более читаемое представление, примерно так:

{
  "reportTemplates": {
    1: {
      "template": "com.foo.config.FirstTemplate",
      "name": "OPT1"
    },
    2: {
      "template": "com.foo.config.SecondTemplate",
      "name": "OPT2"
    },

    "KEY" : {
      "field":"value"
    },

    ...
  }
}

И теперь вы можете использовать этот файл конфигурации в конфигурации Java для создания необходимых шаблонов.

Вы можете прочитать, как работать сJSON свойства весной здесь: https://www.baeldung.com/spring-boot-json-properties

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...