Snabbstart: Lägga till funktionsflaggor i en Spring Boot app
I den här snabbstarten införlivar du Azure App Configuration en Spring Boot webbapp för att skapa en implementering från början till slut av funktionshanteringen. Du kan använda App Configuration för att lagra alla funktionsflaggor centralt och kontrollera deras tillstånd.
Biblioteken Spring Boot funktionshantering utökar ramverket med omfattande stöd för funktionsflaggan. De här biblioteken är inte beroende av några Azure-bibliotek. De integreras sömlöst med App Configuration via dess Spring Boot konfigurationsprovider.
Förutsättningar
- Azure-prenumeration – skapa en kostnadsfritt
- Ett Java Development Kit SDK som stöds med version 8.
- Apache Maven version 3.0 eller senare.
Skapa en App Configuration instans
Om du vill skapa ett nytt konfigurations Arkiv för appen loggar du in på Azure Portal. I det övre vänstra hörnet på Start sidan väljer du skapa en resurs. I rutan Sök på Marketplace anger du app-konfiguration och väljer RETUR.

Välj app-konfiguration från Sök resultaten och välj sedan skapa.

I fönstret skapa app-konfiguration anger du följande inställningar:
Inställning Föreslaget värde Beskrivning Prenumeration Din prenumeration Välj den Azure-prenumeration du vill använda för att testa App Configuration. Om ditt konto bara har en prenumeration väljs den automatiskt och ingen prenumerations lista visas. Resursgrupp AppConfigTestResources Välj eller skapa en resurs grupp för din app Configuration Store-resurs. Den här gruppen är användbar för att organisera flera resurser som du kanske vill ta bort samtidigt genom att ta bort resurs gruppen. Mer information finns i använda resurs grupper för att hantera dina Azure-resurser. Resurs namn Globalt unikt namn Ange ett unikt resurs namn som ska användas för appens konfigurations Arkiv resurs. Namnet måste vara en sträng mellan 5 och 50 tecken och får bara innehålla siffror, bokstäver och -tecknet. Namnet får inte börja eller sluta med-specialtecknet.Plats USA, centrala Använd Plats till att ange den geografiska plats där appkonfigurationsarkivets resurs finns. För bästa prestanda skapar du resursen i samma region som andra komponenter i ditt program. Prisnivå Kostnadsfri Välj önskad pris nivå. Mer information finns på sidan med prissättning för app-konfiguration. Välj Granska + skapa för att validera inställningarna.
Välj Skapa. Distributionen kan ta några minuter.
När distributionen är klar går du till appen konfigurations resurs. Välj Inställningar > Åtkomstnycklar. Anteckna den primära skrivskyddade nyckel anslutnings strängen. Du kommer att använda den här anslutnings strängen senare för att konfigurera programmet för att kommunicera med det app-konfigurations lager som du har skapat.
Välj Funktionshanteraren > + Lägg till för att lägga till en funktionsflagga med namnet
Beta.
Lämna
labelodefinierat tills nu.
Skapa en Spring Boot-app
Använd Spring Initializr för att skapa ett nytt Spring Boot projekt.
Gå till https://start.spring.io/.
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. I den här artikeln används
com.exampleochdemo. - Lägg till Spring Web-beroendet.
När du har angett föregående alternativ väljer du Generera Project. När du uppmanas till det laddar du ned projektet till den lokala datorn.
Lägga till funktionshantering
När du har extraherat filerna i det lokala systemet är Spring Boot program redo för redigering. Leta pom.xml i appens rotkatalog.
Öppna filen pom.xml en textredigerare och lägg till följande i listan över
<dependencies>:<dependency> <groupId>com.azure.spring</groupId> <artifactId>azure-spring-cloud-appconfiguration-config-web</artifactId> <version>2.0.0</version> </dependency> <dependency> <groupId>com.azure.spring</groupId> <artifactId>azure-spring-cloud-feature-management-web</artifactId> <version>2.0.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
Anteckning
- Om du behöver stöd för en äldre version av Spring Boot se vårt gamla appkonfigurationsbibliotek och vårt gamla funktionsflagdebibliotek.
- Det finns ett funktionshanteringsbibliotek som inte är webb och som inte är beroende av Spring-Web. Se GitHub dokumentationen för skillnader.
Anslut till en App Configuration butik
Navigera till
resourceskatalogen för din app och öppnabootstrap.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=trueI App Configuration portal för ditt konfigurationsarkiv väljer
Access keysdu från sidopanelen. Välj fliken Skrivskyddade nycklar. Kopiera värdet för den primära anslutningssträngen.Lägg till den primära anslutningssträngen som en miljövariabel med variabelnamnet
APP_CONFIGURATION_CONNECTION_STRING.Öppna huvudprogrammets Java-fil och lägg till
@EnableConfigurationPropertiesför att aktivera den här funktionen.package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @EnableConfigurationProperties(MessageProperties.class) public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }Skapa en ny Java-fil med namnet MessageProperties.java i appens paketkatalog.
package com.example.demo; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration; @Configuration @ConfigurationProperties(prefix = "config") public class MessageProperties { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }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.manager.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"; } }Skapa en ny HTML-filwelcome.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.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" 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/blob/master/sdk/appconfiguration/azure-spring-cloud-feature-management/README.md">Feature Management with Spring Cloud Azure</a></p> </div> <footer class="footer"> <div class="container"> <span class="text-muted">© 2019 - Projects</span> </div> </footer> </body> </html>Skapa en ny mapp med namnet CSS under
staticoch 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
Skapa Spring Boot-appen med Maven och kör den:
mvn clean package mvn spring-boot:runÖppna ett webbläsarfönster och gå till URL:en:
http://localhost:8080/welcome.
I App Configuration-portalen väljer du Funktionshanteraren och ändrar tillståndet för betanyckeln till På:
Nyckel Tillstånd Beta På Uppdatera webbläsarsidan för att visa de nya konfigurationsinställningarna.

Rensa resurser
Om du inte vill fortsätta använda resurserna som skapats i den här artikeln tar du bort resurs gruppen som du skapade här för att undvika avgifter.
Viktigt
Att ta bort en resursgrupp kan inte ångras. Resurs gruppen och alla resurser i den tas bort permanent. Var noga så att du inte tar bort fel resursgrupp eller resurser av misstag. Om du har skapat resurserna för den här artikeln i en resurs grupp som innehåller andra resurser som du vill behålla, tar du bort varje resurs separat från dess respektive fönster i stället för att ta bort resurs gruppen.
- Logga in på Azure Portaloch välj resurs grupper.
- I rutan Filtrera efter namn anger du namnet på din resurs grupp.
- I listan resultat väljer du resurs gruppens namn för att se en översikt.
- Välj Ta bort resursgrupp.
- Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resurs gruppen som ska bekräftas och välj ta bort.
Efter en liten stund tas resurs gruppen och alla dess resurser bort.
Nästa steg
I den här snabbstarten skapade du ett nytt App Configuration store och använde det för att hantera funktioner i en Spring Boot-webbapp via funktionshanteringsbiblioteken.