О конфигурации мультисредового переключения dev, sit, uat, prod
Недавно мой друг и Ян Ян говорили о проблеме настройки мультисреды.Большинство туториалов в интернете скопированы, а многие статьи просто бесполезны.) Ян Ян из добра (фэн) вернулся и написал демо для парень, так вот статья, просто чтобы объяснить вам о мультисредовой конфигурации Springboot
Время науки:
Что такое dev, sit, uat, prod?
Прежде всего, пусть новые друзья узнают значение науки
- dev — локальная среда разработки;
- сит-тестовая среда;
- уат -- квазипроизводственная среда;
- прод — производственная среда;
Что такое переключение конфигурации в нескольких средах и почему его следует внедрять?
- Это, вы быстро собираете проект springboot, есть только одна среда - среда разработки (DEV), затем вы пишете код, пушите его в SVN или GIT, библиотеку mysql квази-производственной среды вашей проектной команды (UAT) и Среда sit определенно не является библиотекой, невозможно напрямую изменить файл конфигурации (конечно, вы действительно изменяете его напрямую, когда я этого не говорил..)
- Итак, теперь мои друзья думают, как мне реализовать автоматическое переключение между локальной конфигурацией разработки и квази-производственной конфигурацией?
Сначала подготовьте файл конфигурации для нескольких сред.
Во-первых, вы должны иметьapplication.ymlдокумент
Затем, если вы хотите переключаться между разными средами, у вас должен быть файл конфигурации для соответствующей среды, скопируйте application.ymlЧетыре, соответствующие разным средам, реализуются следующим образомПримечание. Убедитесь, что вы ясно видите, что это -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;
}
}
-
образец графика
- тест разработчиков
- пробный тест
2. Сделайте пакет jar для проверки
- Используйте команду clean package -P prod для упаковки
- Упаковка полная, проверяйте Заканчивать!
будь осторожен:
- Если рядом с найденным токеном появляется символ '@', который не может запустить какой-либо токен, это означает, что плагин синтаксического анализа вашего файла pom не был добавлен.
- Если идея не может быть запущена, это означает, что ваши yaml-зависимости не были добавлены
На этот раз это все, чем поделиться. Если вам все еще неясно, оставьте сообщение ниже. Хорошо, друзья мои, Ян Ян ускользнул~