Поделиться через


Краткое руководство: Добавление флагов возможностей в приложение Spring Boot

В этом кратком руководстве описано, как внедрить Конфигурацию приложений Azure в веб-приложение Spring Boot, чтобы реализовать комплексное управление функциями. Вы можете использовать Конфигурация приложений для централизованного хранения всех флагов функций и управления их состояниями.

Библиотеки управления функциями Spring Boot расширяют возможности платформы за счет всесторонней поддержки флагов функций. Эти библиотеки не зависят от любой библиотеки Azure. Они легко интегрируются с Конфигурацией приложений через поставщика конфигураций Spring Boot.

Предварительные условия

Добавление флага компонента

Добавьте флаг компонента с именем Beta в хранилище Конфигурация приложений и оставьте метку и описание со значениями по умолчанию. Для получения дополнительной информации о добавлении флагов функций в хранилище с помощью портала Azure или интерфейса командной строки, см. раздел "Создание флага функции".

Включение флага функции с именем Beta

Создание приложения Spring Boot

Создание нового проекта Spring Boot.

  1. Перейдите к Spring Initializr.

  2. Укажите следующие параметры.

    • Создайте проект Maven с Java.
    • Укажите версию Spring Boot , которая равна или больше 3.0.
    • Заполните поля Group (Группа) и Artifact (Артефакт) для приложения. Для этой статьи используется com.example и demo.
    • Добавление зависимости Spring Web.
  3. После указания предыдущих параметров выберите Создать проект. При появлении запроса скачайте проект на локальный компьютер.

Добавление управления функциями

  1. После извлечения файлов на вашем локальном компьютере приложение Spring Boot будет готово к редактированию. Найдите pom.xml в корневой папке приложения.

  2. Откройте файл pom.xml в текстовом редакторе и добавьте следующие строки в список <dependencies>:

<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>spring-cloud-azure-appconfiguration-config-web</artifactId>
</dependency>
<dependency>
    <groupId>com.azure.spring</groupId>
    <artifactId>spring-cloud-azure-feature-management-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

<dependencyManagement>
    <dependencies>
        <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-dependencies</artifactId>
        <version>7.1.0</version>
        <type>pom</type>
        <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Примечание.

  • Существует библиотека управления не веб-функциями, которая не имеет зависимости от spring-web. Сведения о различиях см. в документации GitHub.

Подключение к хранилищу конфигурации приложений

  1. Перейдите в каталог resources вашего приложения и откройте файл application.properties или application.yaml. Если такой файл не существует, создайте его.

    Вы можете подключиться к хранилищу конфигурации приложений с помощью идентификатора Microsoft Entra (рекомендуется) или с помощью строки подключения.

    1. Обновите файлы конфигурации.

      Если вы используете файл свойств, используйте следующий код:

      spring.config.import=azureAppConfiguration
      spring.cloud.azure.appconfiguration.stores[0].endpoint= ${AZURE_APPCONFIG_ENDPOINT}
      spring.cloud.azure.appconfiguration.stores[0].feature-flags.enabled=true
      

      Если вы используете yaml-файл, используйте следующий код:

      spring:
        config:
          import: azureAppConfiguration
        cloud:
          azure:
            appconfiguration:
              stores:
                - endpoint: ${AZURE_APPCONFIG_ENDPOINT}
                  feature-flags:
                    enabled: true
      

      Вы используете DefaultAzureCredential для проверки подлинности в хранилище конфигурации приложений. Следуйте инструкциям, чтобы назначить ваши учетные данные на роль Чтение данных конфигурации приложений. Перед запуском приложения обязательно предоставьте достаточно времени для распространения разрешения.

  2. Создайте файл Java с именем HelloController.java в каталоге пакета приложения.

    package com.example.demo;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    
    import com.azure.spring.cloud.feature.management.FeatureManager;
    
    
    @Controller
    public class HelloController {
    
        @Autowired
        private FeatureManager featureManager;
    
        @GetMapping("/welcome")
        public String mainWithParam(Model model) {
            model.addAttribute("Beta", featureManager.isEnabled("Beta"));
            return "welcome";
        }
    }
    
  3. Создайте файл HTML с именем welcome.html в каталоге шаблонов приложения.

    <!DOCTYPE html>
    <html lang="en" xmlns:th="http://www.thymeleaf.org">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
        <title>Feature Management with Spring Cloud Azure</title>
    
        <link rel="stylesheet" href="/css/main.css">
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
    
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
    
    </head>
    <body>
        <header>
        <!-- Fixed navbar -->
        <nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
            <a class="navbar-brand" href="#">TestFeatureFlags</a>
            <button class="navbar-toggler" aria-expanded="false" aria-controls="navbarCollapse" aria-label="Toggle navigation" type="button" data-bs-target="#navbarCollapse" data-bs-toggle="collapse">
            <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarCollapse">
            <ul class="navbar-nav me-auto">
                <li class="nav-item active">
                <a class="nav-link" href="#">Home <span class="visually-hidden">(current)</span></a>
                </li>
                <li class="nav-item" th:if="${Beta}">
                <a class="nav-link" href="#">Beta</a>
                </li>
                <li class="nav-item">
                <a class="nav-link" href="#">Privacy</a>
                </li>
            </ul>
            </div>
        </nav>
        </header>
        <div class="container body-content">
            <h1 class="mt-5">Welcome</h1>
            <p>Learn more about <a href="https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/spring/spring-cloud-azure-feature-management/README.md">Feature Management with Spring Cloud Azure</a></p>
    
        </div>
        <footer class="footer">
            <div class="container">
            <span class="text-muted">&copy; 2026 - Projects</span>
        </div>
    
        </footer>
    </body>
    </html>
    
  4. Создайте папку с именем "CSS" в static и внутри нее — новый CSS файл с именем main.css.

    html {
     position: relative;
     min-height: 100%;
    }
    body {
     margin-bottom: 60px;
    }
    .footer {
     position: absolute;
     bottom: 0;
     width: 100%;
     height: 60px;
     line-height: 60px;
     background-color: #f5f5f5;
    }
    
    body > .container {
     padding: 60px 15px 0;
    }
    
    .footer > .container {
     padding-right: 15px;
     padding-left: 15px;
    }
    
    code {
     font-size: 80%;
    }
    

Создание и запуск приложения локально

  1. Задайте переменную среды.

    Установите переменную среды с именем AZURE_APPCONFIG_ENDPOINT на значение конечной точки вашего хранилища конфигураций приложений, найденной в разделе Обзор вашего хранилища в портале Azure.

    Если вы используете командную строку Windows, выполните следующую команду и перезапустите командную строку, чтобы изменения вступили в силу:

    setx AZURE_APPCONFIG_ENDPOINT "endpoint-of-your-app-configuration-store"
    

    Если вы используете PowerShell, выполните следующую команду:

    $Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
    

    Если вы используете macOS или Linux, выполните следующую команду:

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    

    Перезапустите командную строку, чтобы изменение вступило в силу. Выведите значение переменной среды, чтобы проверить правильность ее настройки.


  2. Создайте приложение Spring Boot с помощью Maven и запустите его.

    mvn clean package
    mvn spring-boot:run
    
  3. Откройте окно браузера и перейдите по адресу http://localhost:8080/welcome.

    Снимок экрана: окно браузера с приветственным сообщением.

  4. На портале конфигурации приложений выберите Feature Manager (Диспетчер функций) и измените состояние ключа Beta на On (Включен).

    Ключ Государство
    Бета-версия Вкл
  5. Обновите страницу браузера, чтобы просмотреть новые параметры конфигурации.

    Снимок экрана: окно браузера с приветственным сообщением и выделенной ссылкой на бета-версию.

Очистка ресурсов

Если вы не планируете в дальнейшем использовать ресурсы, созданные при работе с этой статьей, удалите созданную группу ресурсов, чтобы избежать расходов.

Внимание

Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не те ресурсы или группу ресурсов. Если ресурсы для работы с этой статьей созданы в группе ресурсов, которая содержит другие нужные ресурсы, удалите каждый ресурс отдельно в соответствующей области ресурса, чтобы не удалять группу ресурсов.

  1. Войдите на портал Azure и выберитеГруппы ресурсов.
  2. Введите имя группы ресурсов в поле Фильтровать по имени.
  3. В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
  4. Выберите команду Удалить группу ресурсов.
  5. Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и нажмите Удалить.

Через некоторое время группа ресурсов и все ее ресурсы будут удалены.

Следующие шаги

В этом кратком руководстве вы создали хранилище Конфигурации приложений и использовали его для управления функциями веб-приложения Spring Boot с помощью библиотек управления функциями.