Версия yml-файла конфигурации Springboot для нескольких сред

Java

О конфигурации мультисредового переключения dev, sit, uat, prod

Недавно мой друг и Ян Ян говорили о проблеме настройки мультисреды.Большинство туториалов в интернете скопированы, а многие статьи просто бесполезны.) Ян Ян из добра (фэн) вернулся и написал демо для парень, так вот статья, просто чтобы объяснить вам о мультисредовой конфигурации Springboot

Время науки:

Что такое dev, sit, uat, prod?

Прежде всего, пусть новые друзья узнают значение науки

  • dev — локальная среда разработки;
  • сит-тестовая среда;
  • уат -- квазипроизводственная среда;
  • прод — производственная среда;

Что такое переключение конфигурации в нескольких средах и почему его следует внедрять?

  • Это, вы быстро собираете проект springboot, есть только одна среда - среда разработки (DEV), затем вы пишете код, пушите его в SVN или GIT, библиотеку mysql квази-производственной среды вашей проектной команды (UAT) и Среда sit определенно не является библиотекой, невозможно напрямую изменить файл конфигурации (конечно, вы действительно изменяете его напрямую, когда я этого не говорил..)
  • Итак, теперь мои друзья думают, как мне реализовать автоматическое переключение между локальной конфигурацией разработки и квази-производственной конфигурацией?

Сначала подготовьте файл конфигурации для нескольких сред.

Во-первых, вы должны иметьapplication.ymlдокумент

自动生成的文件
Затем, если вы хотите переключаться между разными средами, у вас должен быть файл конфигурации для соответствующей среды, скопируйте application.ymlЧетыре, соответствующие разным средам, реализуются следующим образом
4个环境

Примечание. Убедитесь, что вы ясно видите, что это -sitне _сидеть, ваш файл не годится, он должен быть-ххх окончаниеЗдесь следует отметить, что выНастройка публичной части, пожалуйста, поместите его в application.yml, если это другая конфигурация (например, другая конфигурация mysql), поместите ее в соответствующий файл (например, пользователь mysql вашего сайта имеет разрешение на добавление, удаление и просмотр, а пользователь uat имеет право только на просмотр) Здесь разбираются основы конфигурационной части.Если в это время проект запускает небольшой партнер, то как его запустить - это выполнить application.yml

Как переключиться?

Здесь вам нужно изменить pom.xml, чтобы переключить файл конфигурации.Введение выглядит следующим образом:

1. Настройте узел профилей

<!-- 多环境配置方案 -->
    <profiles>
        <profile>
            <!-- 本地开发环境 -->
            <id>dev</id>
            <properties>
                <profileActive>dev</profileActive>
            </properties>
            <!-- 默认开启这个配置 -->
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>sit</id>
            <properties>
                <profileActive>sit</profileActive>
            </properties>
        </profile>
        <profile>
            <id>uat</id>
            <properties>
                <profileActive>uat</profileActive>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <profileActive>prod</profileActive>
            </properties>
        </profile>
    </profiles>

2. Добавьте плагин для синтаксического анализа

	<plugin>
           <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <configuration>
                <delimiters>@</delimiters>
                <useDefaultDelimiters>false</useDefaultDelimiters>
            </configuration>
        </plugin>

3. Измените файл application.yml

Примечание. Данные в @profileActive@ соответствуют данным ваших свойств.

  profiles:
    active: @profileActive@

4. Нужно добавить yaml-зависимости, иначе не запустится запуск idea (есть еще один способ скачать плагин, поддерживаемый idea, который здесь не рекомендуется)

	<dependency>
	            <groupId>org.yaml</groupId>
	            <artifactId>snakeyaml</artifactId>
	</dependency>

Проверка переключения конфигурации с несколькими средами

1. проверка запуска идеи

  • Я написал демонстрационную проверку, добавив пользовательский параметр в каждый файл yml, и соответствующие номера портов отличаются, как показано ниже:

    环境数据

  • метод проверки

/**
 - @author yanglei
 - @desc
 - @date 2020/6/28
 */
@RestController
public class DemoController {

    @Value("${envname}")
    private String envName;

    @GetMapping
    @RequestMapping("/getEnv")
    public String getEnv(){
        return "当前环境是:"+envName;
    }
}
  • образец графика

    • тест разработчиков
      在这里插入图片描述
    • пробный тест
      prod测试

2. Сделайте пакет jar для проверки

  • Используйте команду clean package -P prod для упаковки
    打包
  • Упаковка полная, проверяйте
    jar包
    Заканчивать!

будь осторожен:

  • Если рядом с найденным токеном появляется символ '@', который не может запустить какой-либо токен, это означает, что плагин синтаксического анализа вашего файла pom не был добавлен.
  • Если идея не может быть запущена, это означает, что ваши yaml-зависимости не были добавлены

На этот раз это все, чем поделиться. Если вам все еще неясно, оставьте сообщение ниже. Хорошо, друзья мои, Ян Ян ускользнул~