Sdílet prostřednictvím


Rychlý start: Přidání příznaků funkcí do aplikace Spring Boot

V tomto rychlém startu začleníte Aplikace Azure Configuration do webové aplikace Spring Boot, abyste vytvořili kompletní implementaci správy funkcí. Pomocí služby App Configuration můžete centrálně ukládat všechny příznaky funkcí a řídit jejich stavy.

Knihovny správy funkcí Spring Boot rozšiřují architekturu o komplexní podporu příznaků funkcí. Tyto knihovny nejsou závislé na žádné knihovně Azure. Bezproblémově se integrují se službou App Configuration prostřednictvím svého poskytovatele konfigurace Spring Boot.

Požadavky

Přidání příznaku funkce

Přidejte příznak funkce s názvem Beta do obchodu App Configuration Store a ponechte popis a popis s výchozími hodnotami. Další informace o přidání příznaků funkcí do úložiště pomocí webu Azure Portal nebo rozhraní příkazového řádku najdete v části Vytvoření příznaku funkce.

Povolení příznaku funkce s názvem Beta

Vytvoření aplikace Spring Boot

Vytvoření nového projektu Spring Boot:

  1. Přejděte na Spring Initializr.

  2. Zadejte následující možnosti:

    • Vygenerujte projekt Maven v Javě.
    • Zadejte verzi Spring Boot, která je rovna nebo větší než 2.0.
    • Zadejte názvy skupiny (Group) a artefaktu (Artifact) pro vaši aplikaci. Tento článek používá com.example a demo.
    • Přidejte závislost Spring Web.
  3. Po zadání předchozích možností vyberte Generovat projekt. Po zobrazení výzvy stáhněte projekt do místního počítače.

Přidání správy funkcí

  1. Po extrahování souborů v místním systému je vaše aplikace Spring Boot připravená k úpravám. Vyhledejte pom.xml v kořenovém adresáři vaší aplikace.

  2. Otevřete soubor pom.xml v textovém editoru a přidejte do seznamu<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>6.0.0</version>
        <type>pom</type>
        <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Poznámka:

  • Existuje newebová knihovna pro správu funkcí, která nemá závislost na spring-webu. Rozdíly najdete v dokumentaci k GitHubu.

Připojení ke službě App Configuration Store

  1. Přejděte do resources adresáře aplikace a otevřete bootstrap.properties soubor nebo bootstrap.yaml soubor. Pokud soubor neexistuje, vytvořte ho.

    Můžete se připojit do svého úložiště App Configuration pomocí Microsoft Entra ID (doporučeno) nebo připojovacího řetězce.

    1. Aktualizujte konfigurační soubory.

      Pokud používáte soubor vlastností, použijte následující kód:

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

      Pokud používáte soubor yaml, použijte následující kód:

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

      Použijete DefaultAzureCredential k ověření ve službě App Configuration Store. Postupujte podle pokynů a přiřaďte své přihlašovací údaje roli Čtenář dat konfigurace aplikace. Před spuštěním aplikace nezapomeňte povolit dostatek času, než se oprávnění rozšíří.

    2. Pokud nechcete používat spravovanou identitu, přidejte do projektu následující kód. Vytvořte nový soubor s názvem AppConfigCredential.java:

      import com.azure.data.appconfiguration.ConfigurationClientBuilder;
      import com.azure.identity.DefaultAzureCredentialBuilder;
      import com.azure.spring.cloud.appconfiguration.config.ConfigurationClientCustomizer;
      
      public class AppConfigCredential implements ConfigurationClientCustomizer {
      
          @Override
          public void customize(ConfigurationClientBuilder builder, String endpoint) {
              builder.credential(new DefaultAzureCredentialBuilder().build());
          }
      }
      
    3. Vytvořte nový soubor s názvem MyConfiguration.java a přidejte následující řádky:

      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;
      
      @Configuration
      public class MyConfiguration {
      
      
          @Bean
          public AppConfigCredential clientSetup() {
              return new AppConfigCredential();
          }
      
      }
      
    4. Přidejte konfiguraci Bootstrap Configuration vytvořením souboru spring.factories ve složce resources/META-INF, přidejte následující řádky a nahraďte com.example.MyConfiguration názvem vašeho balíčku aplikace.

      org.springframework.cloud.bootstrap.BootstrapConfiguration=\
      com.example.MyConfiguration
      
  2. V adresáři balíčku aplikace vytvořte nový soubor Java s názvem 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. V adresáři šablon aplikace vytvořte nový soubor HTML s názvem 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://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    
        <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
        <script src="https://unpkg.com/@popperjs/core@2"></script>
        <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-target="#navbarCollapse" data-toggle="collapse">
            <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarCollapse">
            <ul class="navbar-nav mr-auto">
                <li class="nav-item active">
                <a class="nav-link" href="#">Home <span class="sr-only">(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; 2019 - Projects</span>
        </div>
    
        </footer>
    </body>
    </html>
    
    
  4. Vytvořte novou složku s názvem CSS pod static novým souborem CSS s názvem 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%;
    }
    

Sestavení a místní spuštění aplikace

  1. Nastavte proměnnou prostředí.

    Nastavte proměnnou prostředí s názvem APP_CONFIGURATION_ENDPOINT na koncový bod obchodu App Configuration, který najdete v části Přehled obchodu na webu Azure Portal.

    Pokud používáte příkazový řádek systému Windows, spusťte následující příkaz a restartujte příkazový řádek, aby se změna projevila:

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

    Pokud používáte PowerShell, spusťte následující příkaz:

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

    Pokud používáte macOS nebo Linux, spusťte následující příkaz:

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

    Restartujte příkazový řádek, aby se změna projevila. Vytiskněte hodnotu proměnné prostředí, abyste ověřili, že je správně nastavená.


  2. Sestavte aplikaci Spring Boot pomocí Mavenu a spusťte ji.

    mvn clean package
    mvn spring-boot:run
    
  3. Otevřete okno prohlížeče a přejděte na adresu URL: http://localhost:8080/welcome.

    Snímek obrazovky s oknem prohlížeče s uvítací zprávou

  4. Na portálu App Configuration vyberte Správce funkcí a změňte stav beta klíče na Zapnuto:

    Klíč Stát
    Beta Zapnout
  5. Aktualizujte stránku prohlížeče, aby se zobrazila nová nastavení konfigurace.

    Snímek obrazovky s oknem prohlížeče se zobrazenou uvítací zprávou a odkazem na beta verzi

Vyčištění prostředků

Pokud nechcete dál používat prostředky vytvořené v tomto článku, odstraňte skupinu prostředků, kterou jste tady vytvořili, abyste se vyhnuli poplatkům.

Důležité

Odstranění skupiny prostředků je nevratné. Skupina prostředků a všechny prostředky v ní se trvale odstraní. Ujistěte se, že omylem neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek ve skupině prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte jednotlivé prostředky z příslušného podokna místo odstranění skupiny prostředků.

  1. Přihlaste se k webu Azure Portal a vyberte skupiny prostředků.
  2. Do pole Filtrovat podle názvu zadejte název vaší skupiny prostředků.
  3. V seznamu výsledků vyberte název skupiny prostředků, abyste zobrazili přehled.
  4. Vyberte Odstranit skupinu prostředků.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Potvrďte název skupiny prostředků a vyberte Odstranit.

Po chvíli se skupina prostředků a všechny její prostředky odstraní.

Další kroky

V tomto rychlém startu jste vytvořili nový obchod App Configuration a použili jste ho ke správě funkcí ve webové aplikaci Spring Boot prostřednictvím knihoven pro správu funkcí.