Quickstart: Functievlaggen toevoegen aan een Spring Boot-app
In deze snelstart neemt u Azure App Configuration op in een Spring Boot-web-app om een end-to-end-implementatie van functiebeheer te maken. U kunt de App Configuration-service gebruiken om al uw functievlaggen centraal op te slaan en hun status te bepalen.
De Spring Boot-functiebeheerbibliotheken breiden het framework uit met uitgebreide ondersteuning voor functievlaggen. Deze bibliotheken zijn niet afhankelijk van Azure-bibliotheken. Ze kunnen naadloos worden geïntegreerd met App Configuration via de configuratieprovider voor Spring Boot.
Vereisten
- Azure-abonnement: u kunt een gratis abonnement nemen
- Een ondersteunde Java Development Kit SDK met versie 8.
- Apache Maven versie 3.0 of hoger.
Een App Configuration-exemplaar maken
Als u een nieuw App Configuration-archief wilt maken, moet u zich eerst aanmelden bij de Azure-portal. Selecteer in de linkerbovenhoek van de startpagina de optie Een resource maken. Voer in het vak Marketplace doorzoeken App Configuration in en selecteer Invoeren.

Selecteer App Configuration in de zoekresultaten en selecteer vervolgens Maken.

Voer in het deelvenster App Configuration maken de volgende instellingen in:
Instelling Voorgestelde waarde Beschrijving Abonnement Uw abonnement Selecteer het Azure-abonnement dat u wilt gebruiken om App Configuration te testen. Als uw account maar één abonnement heeft, wordt dit automatisch geselecteerd en wordt de lijst Abonnement niet weergegeven. Resourcegroep AppConfigTestResources Selecteer of maak een resourcegroep voor de resource van het App Configuration-archief. Deze groep is handig voor het ordenen van meerdere resources die u mogelijk op een bepaald moment wilt verwijderen door resourcegroep te verwijderen. Zie Resourcegroepen gebruiken om Azure-resources te beheren voor meer informatie. Resourcenaam Wereldwijd unieke naam Voer een unieke resourcenaam in voor de resource van het App Configuration-archief. De naam moet een tekenreeks zijn van 5 tot 50 tekens en mag alleen cijfers, letters en -bevatten. De naam mag niet beginnen of eindigen met-.Locatie US - centraal Gebruik Locatie om de geografische locatie op te geven waar het app-configuratiearchief wordt gehost. Voor de beste prestaties maakt u de resource in dezelfde regio als de andere onderdelen van uw toepassing. Prijscategorie Gratis Selecteer de gewenste prijscategorie. Ga voor meer informatie naar de pagina met prijzen voor App Configuration. Selecteer Beoordelen en maken om de instellingen te valideren.
Selecteer Maken. De implementatie kan enkele minuten duren.
Als de implementatie is voltooid, gaat u naar de resource App Configuration. Selecteer Instellingen > Toegangssleutels. Noteer de verbindingsreeks van de primaire alleen-lezensleutel. U hebt de verbindingsreeks later nodig voor de configuratie van uw toepassing, zodat deze kan communiceren met het App Configuration-archief dat u hebt gemaakt.
Selecteer Functiebeheer > + Toevoegen om een functievlag met de naam
Betatoe te voegen.
Laat
labelvoor dit moment niet-gedefinieerd.
Een Spring Boot-app maken
Gebruik de Spring Initializr om een nieuw Spring Boot-project te maken.
Blader naar https://start.spring.io/.
Geef de volgende opties op:
- Genereer een Maven-project met Java.
- Geef een Spring Boot-versie op van 2.0 of hoger.
- Geef de namen voor Groep en Artefact voor uw toepassing op. In dit artikel worden
com.exampleendemogebruikt. - Voeg de Spring Web-afhankelijkheid toe.
Nadat u de vorige opties hebt opgegeven, selecteert u Project genereren. Wanneer u hierom wordt gevraagd, downloadt u het project naar uw lokale computer.
Functiebeheer toevoegen
Nadat u de bestanden op uw lokale systeem hebt uitgepakt, is uw Spring Boot-toepassing gereed om te bewerken. Zoek pom.xml in de hoofdmap van uw app op.
Open het bestand pom.xml in een teksteditor en voeg het volgende toe aan de lijst met
<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>
Notitie
- Als u een oudere versie van de app wilt Spring Boot bekijkt u onze oude appconfiguration-bibliotheek en onze oude functievlagbibliotheek.
- Er is een functiebeheerbibliotheek zonder webonderdelen die niet afhankelijk van Spring Web is. Raadpleeg de documentatie van GitHub voor verschillen.
Verbinding maken met een App Configuration-archief
Ga naar de map
resourcesvan uw app en openbootstrap.properties. Als het bestand niet bestaat, maakt u het. Voeg de volgende regel aan het bestand toe.spring.cloud.azure.appconfiguration.stores[0].connection-string= ${APP_CONFIGURATION_CONNECTION_STRING} spring.cloud.azure.appconfiguration.stores[0].feature-flags.enabled=trueSelecteer in de App Configuration-portal voor uw configuratiearchief
Access keysin de zijbalk. Selecteer het tabblad Alleen-lezensleutels. Kopieer de waarde van de primaire verbindingsreeks.Voeg de primaire verbindingsreeks als een omgevingsvariabele toe met de variabelenaam
APP_CONFIGURATION_CONNECTION_STRING.Open het Java-bestand van de hoofdtoepassing en voeg
@EnableConfigurationPropertiestoe om deze functie in te schakelen.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); } }Maak een nieuw Java-bestand met de naam MessageProperties.java in de pakketmap van uw app.
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; } }Maak een nieuw Java-bestand met de naam HelloController.java in de pakketmap van uw app.
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"; } }Maak een nieuw HTML-bestand met de naam welcome.html in de sjablonenmap van uw app.
<!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>Maak een nieuwe map met de naam CSS onder
staticen in deze map een nieuw CSS-bestand met de naam 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%; }
De app lokaal compileren en uitvoeren
Maak uw Spring Boot-app met Maven en voer deze uit.
mvn clean package mvn spring-boot:runOpen een browservenster en ga naar de URL:
http://localhost:8080/welcome.
Selecteer in de App Configuration-portal de optie Functiebeheer en wijzig de status van de Beta-sleutel in Aan:
Sleutel Status Bèta Aan Vernieuw de browserpagina om de nieuwe configuratie-instellingen te zien.

Resources opschonen
Als u niet door wilt gaan met de resources die in dit artikel zijn gemaakt, verwijdert u de resourcegroep die u hier hebt gemaakt om kosten te voorkomen.
Belangrijk
Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. De resourcegroep en alle resources daarin worden permanent verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert. Als u de resources voor dit artikel in een resourcegroep hebt gemaakt die andere resources bevat die u wilt behouden, moet u elke resource afzonderlijk verwijderen uit het deelvenster in plaats van dat u de resourcegroep verwijdert.
- Meld u aan bij de Azure-portal en selecteer Resourcegroepen.
- Voer de naam van de resourcegroep in het vak Filteren op naam in.
- Selecteer in de resultatenlijst de resourcegroepnaam om een overzicht te bekijken.
- Selecteer Resourcegroep verwijderen.
- U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Voer de naam van de resourcegroep in ter bevestiging en selecteer Verwijderen.
Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.
Volgende stappen
In deze snelstart hebt u een nieuw App Configuration-archief gemaakt en gebruikt om de functies in een Spring Boot-web-app te beheren via de Functiebeheerbibliotheken.
- Meer informatie over functiebeheer.
- Functievlaggen beheren.
- Functievlaggen gebruiken in een Spring Boot Core-app.