Как динамически передать или указать application.yml, когда приложение весенней загрузки развернуто как служба в linux? - PullRequest
1 голос
/ 20 января 2020

Я собираюсь развернуть приложение весенней загрузки как службу в linux, как указано в следующих документах - https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html#deployment -initd-service

Но я здесь не вижу опции, как я могу указать собственный application.yml на машине. т.е. я хотел бы сохранить application.yml со всеми учетными данными и другими данными в машине и передать его службе, когда я вызываю «service myApp start».

, как упомянуто в документации, я хотел бы запустить $ sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp $ service myapp start

и проверить, как я могу здесь передать путь application.yml.

Пожалуйста, предоставьте информацию по этому вопросу.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 20 января 2020

Существует несколько вариантов его реализации:

1.Укажите путь к файлу конфигурации в качестве свойств пружины

java -jar myproject.jar --spring. config.location = classpath: /default.properties,classpath: /override.properties

2.Используйте bean-компонент propertyConfigurer с переменной среды в составе имени файла конфигурации:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:META-INF/spring/common_configuration.properties</value>
                <value>classpath:META-INF/spring/configuration-${ENVIRONMENT_NAME}.properties</value>
                <value>classpath:META-INF/spring/database-${ENVIRONMENT_NAME}.properties</value>
            </list>
        </property>
        <property name="ignoreResourceNotFound" value="true"/>
        <property name="searchSystemEnvironment" value="true"/>
        <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
    </bean>

3 .Profiles Использовать стандартное имя файла и расположение конфигурации с переменной профиля как часть имени

application-dev.properties

application-prod.properties

application-test. свойства

и настройка профиля при запуске приложения

- spring.profiles.active = dev, prod

0 голосов
/ 20 января 2020

Spring boot может также считывать конфигурации из внешнего файла.

Использование: --spring.config.location=<PATH_TO_YAML_FILE> в скрипте запуска службы

Пример:

 java -jar myproject.jar --spring.config.location=file:/application.yml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...