Share via


Snabbstart: Lägga till funktionsflaggor i en Spring Boot-app

I den här snabbstarten införlivar du Azure App Configuration i en Spring Boot-webbapp för att skapa en implementering av funktionshantering från slutpunkt till slutpunkt. Du kan använda App Configuration för att lagra alla dina funktionsflaggor centralt och styra deras tillstånd.

Spring Boot-funktionshanteringsbiblioteken utökar ramverket med omfattande stöd för funktionsflagga. De här biblioteken har inget beroende av några Azure-bibliotek. De integreras sömlöst med App Configuration via dess Spring Boot-konfigurationsprovider.

Förutsättningar

Lägga till en funktionsflagga

Lägg till en funktionsflagga med namnet Beta i App Configuration Store och lämna Etikett och Beskrivning med sina standardvärden. Mer information om hur du lägger till funktionsflaggor i en butik med hjälp av Azure-portalen eller CLI finns i Skapa en funktionsflagga.

Aktivera funktionsflagga med namnet Beta

Skapa en Spring Boot-app

Så här skapar du ett nytt Spring Boot-projekt:

  1. Bläddra till Spring Initializr.

  2. Ange följande alternativ:

    • Generera ett Maven-projekt med Java.
    • Ange en Spring Boot-version som är lika med eller större än 2.0.
    • Ange namnen för Group (Grupp) och Artifact (Artefakt) för ditt program. Den här artikeln använder com.example och demo.
    • Lägg till Spring Web-beroendet.
  3. När du har angett föregående alternativ väljer du Generera projekt. När du uppmanas att göra det laddar du ned projektet till den lokala datorn.

Lägga till funktionshantering

  1. När du har extraherat filerna i det lokala systemet är Spring Boot-programmet redo för redigering. Leta upp pom.xml i appens rotkatalog.

  2. Öppna filen pom.xml i en textredigerare och lägg till följande i listan med <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>5.8.0</version>
            <type>pom</type>
            <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

Kommentar

  • Det finns ett funktionshanteringsbibliotek som inte är webbbaserat och som inte är beroende av spring-web. Mer information finns i GitHubs dokumentation .

Anslut till ett appkonfigurationsarkiv

  1. Gå till katalogen för resources din app och öppna bootstrap.properties. Om filen inte finns skapar du den. Lägg till följande rad i filen.

    spring.cloud.azure.appconfiguration.stores[0].connection-string= ${APP_CONFIGURATION_CONNECTION_STRING}
    spring.cloud.azure.appconfiguration.stores[0].feature-flags.enabled=true
    
  2. Ange en miljövariabel med namnet APP_CONFIGURATION_CONNECTION_STRING och ange den till anslutningssträng till appkonfigurationsarkivet. På kommandoraden kör du följande kommando och startar om kommandotolken för att tillåta att ändringen börjar gälla:

    Kör följande kommando för att skapa och köra appen lokalt med hjälp av Windows-kommandotolken:

    setx APP_CONFIGURATION_CONNECTION_STRING "connection-string-of-your-app-configuration-store"
    

    Starta om kommandotolken så att ändringen börjar gälla. Skriv ut värdet för miljövariabeln för att verifiera att den har angetts korrekt.

  3. Skapa en ny Java-fil med namnet HelloController.java i appens paketkatalog.

    package com.example.demo;
    
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    
    import com.azure.spring.cloud.feature.management.FeatureManager;
    import org.springframework.web.bind.annotation.GetMapping;
    
    
    @Controller
    @ConfigurationProperties("controller")
    public class HelloController {
    
        private FeatureManager featureManager;
    
        public HelloController(FeatureManager featureManager) {
            this.featureManager = featureManager;
        }
    
        @GetMapping("/welcome")
        public String mainWithParam(Model model) {
            model.addAttribute("Beta", featureManager.isEnabledAsync("Beta").block());
            return "welcome";
        }
    }
    
  4. Skapa en ny HTML-fil med namnet welcome.html i appens mallkatalog.

    <!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>
    
    
  5. Skapa en ny mapp med namnet CSS under static och inuti den en ny CSS-fil med namnet 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%;
    }
    

Skapa och köra appen lokalt

  1. Skapa Spring Boot-appen med Maven och kör den:

    mvn clean package
    mvn spring-boot:run
    
  2. Öppna ett webbläsarfönster och gå till URL:en: http://localhost:8080/welcome.

    Skärmbild som visar ett webbläsarfönster med ett välkomstmeddelande.

  3. I appkonfigurationsportalen väljer du Funktionshanteraren och ändrar tillståndet för betanyckeln till :

    Nyckel Tillstånd
    Beta
  4. Uppdatera webbläsarsidan för att visa de nya konfigurationsinställningarna.

    Skärmbild som visar ett webbläsarfönster med ett välkomstmeddelande och en Beta-länk framhävd.

Rensa resurser

Om du inte vill fortsätta använda resurserna som skapas i den här artikeln tar du bort resursgruppen som du skapade här för att undvika avgifter.

Viktigt!

Att ta bort en resursgrupp kan inte ångras. Resursgruppen och alla resurser i den tas bort permanent. Se till att du inte oavsiktligt tar bort fel resursgrupp eller resurser. Om du har skapat resurserna för den här artikeln i en resursgrupp som innehåller andra resurser som du vill behålla tar du bort varje resurs individuellt från respektive fönster i stället för att ta bort resursgruppen.

  1. Logga in på Azure-portalen och välj Resursgrupper.
  2. I rutan Filtrera efter namn anger du namnet på resursgruppen.
  3. I resultatlistan väljer du resursgruppens namn för att se en översikt.
  4. Välj Ta bort resursgrupp.
  5. Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resursgruppen för att bekräfta och välj Ta bort.

Efter en liten stund tas resursgruppen och alla dess resurser bort.

Nästa steg

I den här snabbstarten skapade du ett nytt appkonfigurationsarkiv och använde det för att hantera funktioner i en Spring Boot-webbapp via funktionshanteringsbiblioteken.