Hızlı Başlangıç: Spring Boot uygulamasına özellik bayrakları ekleme
Bu hızlı başlangıçta, özellik yönetiminin Azure Uygulama Yapılandırması bir Spring Boot uygulaması oluşturmak için Spring Boot bir web uygulamasına dahil etmiş oluruz. Tüm özellik bayraklarınızı merkezi olarak depolamak ve bunların eyaletlerini kontrol etmek için Uygulama Yapılandırma hizmetini kullanabilirsiniz.
Özellik Spring Boot kitaplıkları kapsamlı özellik bayrağı desteğiyle çerçeveyi genişletmektedir. Bu kitaplıkların hiçbir Azure kitaplığına bağımlılığı olmaz. Uygulama Yapılandırması ile uygulama yapılandırma sağlayıcısını kullanarak Spring Boot tümleştirildi.
Önkoşullar
- Azure aboneliği - ücretsiz bir abonelik oluşturun
- Sürüm 8 ile desteklenen bir Java Geliştirme Seti SDK'sı.
- Apache Maven sürüm 3.0 veya üzeri.
Uygulama Yapılandırma örneği oluşturma
Yeni bir uygulama yapılandırma deposu oluşturmak için Azure Portaloturum açın. Giriş sayfasının sol üst köşesinde kaynak oluştur' u seçin. Market 'te Ara kutusuna uygulama yapılandırması ' nı girin ve ENTER' u seçin.

Arama sonuçlarından uygulama yapılandırması ' nı seçin ve ardından Oluştur' u seçin.

Uygulama yapılandırması oluştur bölmesinde, aşağıdaki ayarları girin:
Ayar Önerilen değer Açıklama Abonelik Aboneliğiniz Uygulama yapılandırmasını test etmek için kullanmak istediğiniz Azure aboneliğini seçin. Hesabınızda yalnızca bir abonelik varsa, bu otomatik olarak seçilir ve abonelik listesi gösterilmez. Kaynak grubu AppConfigTestResources Uygulama yapılandırma deposu kaynağınız için bir kaynak grubu seçin veya oluşturun. Bu grup, kaynak grubunu silerek aynı anda silmek isteyebileceğiniz birden çok kaynağı düzenlemek için yararlıdır. Daha fazla bilgi için Azure kaynaklarınızı yönetmek için kaynak gruplarını kullanma konusunu inceleyin. Kaynak adı Genel olarak benzersiz bir ad Uygulama yapılandırma deposu kaynağı için kullanılacak benzersiz bir kaynak adı girin. Ad, 5 ila 50 karakter arasında bir dize olmalı ve yalnızca rakam, harf ve -karakter içermelidir. Ad, karakteriyle başlayamaz veya bitemez-.Konum Central US Uygulama yapılandırma deponuzın barındırıldığı coğrafi konumu belirtmek için konum ' i kullanın. En iyi performansı elde etmek için, kaynağı uygulamanızın diğer bileşenleriyle aynı bölgede oluşturun. Fiyatlandırma katmanı Ücretsiz İstediğiniz fiyatlandırma katmanını seçin. Daha fazla bilgi için bkz. uygulama yapılandırma fiyatlandırma sayfası. Ayarlarınızı doğrulamak için gözden geçir + oluştur ' u seçin.
Oluştur’u seçin. Dağıtım birkaç dakika sürebilir.
Dağıtım bittikten sonra uygulama yapılandırma kaynağına gidin. Ayarlar > Erişim anahtarları öğesini seçin. Birincil salt okunurdur anahtar bağlantı dizesini bir yere unutmayın. Uygulamanızı oluşturduğunuz uygulama yapılandırma deposuyla iletişim kuracak şekilde yapılandırmak için bu bağlantı dizesini daha sonra kullanacaksınız.
Özellik Yöneticisi > +Ekle'yi seçerek adlı bir özellik bayrağı
Betaekleyin.
Şimdilik
labeltanımsız bırakın.
Spring Boot oluşturma
Spring Initializr'ı kullanarak yeni bir Spring Boot oluşturun.
https://start.spring.io/ adresine gidin.
Aşağıdaki seçenekleri belirtin:
- Java ile bir Maven projesi oluşturun.
- 2 Spring Boot veya daha büyük bir sürüm belirtin.
- Uygulamanız için Grup ve Yapıt adlarını belirtin. Bu makalede ve
com.examplelarıdemolanmıştır. - Spring Web bağımlılığını ekleyin.
Önceki seçenekleri belirtdikten sonra Oluştur'Project. İstendiğinde projeyi yerel bilgisayarınıza indirin.
Özellik yönetimi ekleme
Yerel sisteminize dosyaları ayıkladikten sonra, Spring Boot uygulamanız düzenlemeye hazırdır. Uygulama pom.xml kök dizininde bir dizin bulun.
Aşağıdaki pom.xml dosyasını bir metin düzenleyicisinde açın ve aşağıdakini listesine
<dependencies>ekleyin:<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>
Not
- Uygulama yapılandırmanın eski bir sürümünü desteklemeye ihtiyacınız Spring Boot eski uygulama yapılandırma kitaplığımıza ve eski özellik bayrağı kitaplığımıza bakın.
- Spring-web'e bağımlılığı olmayan web dışı bir Özellik Yönetimi Kitaplığı vardır. Farklılıklar GitHub belgelerine bakın.
Bağlan Yapılandırma deposuna yapılandırma
Uygulama
resourcesdizininize gidin ve 'ibootstrap.propertiesaçın. Dosya yoksa oluşturun. Dosyaya aşağıdaki satırı ekleyin.spring.cloud.azure.appconfiguration.stores[0].connection-string= ${APP_CONFIGURATION_CONNECTION_STRING} spring.cloud.azure.appconfiguration.stores[0].feature-flags.enabled=trueYapılandırma mağazanız için Uygulama Yapılandırması portalında kenar
Access keysçubuğu'dan öğesini seçin. Salt okunur anahtarlar sekmesini seçin. Birincil bağlantı dizesinin değerini kopyalayın.Değişken adını kullanarak birincil bağlantı dizesini ortam değişkeni olarak
APP_CONFIGURATION_CONNECTION_STRINGekleyin.Ana uygulama Java dosyasını açın ve bu özelliği
@EnableConfigurationPropertiesetkinleştirmek için ekleyin.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); } }Uygulamanın package dizininde MessageProperties.java adlı yeni bir Java dosyası oluşturun.
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; } }Uygulamanın package dizininde HelloController.java adlı yeni bir Java dosyası oluşturun.
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"; } }Uygulamanın templates dizinindewelcome.html adlı yeni bir HTML dosyası oluşturun.
<!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>altında ve içinde
staticmain.css adlı yeni bir CSS dosyası adlı yeni bir klasör oluşturun.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%; }
Uygulamayı yerel olarak derleme ve çalıştırma
Spring Boot uygulamanızı Maven’le oluşturun ve çalıştırın.
mvn clean package mvn spring-boot:runBir tarayıcı penceresi açın ve URL'ye gidin:
http://localhost:8080/welcome.
Uygulama Yapılandırması portalında Özellik Yöneticisi'ni seçin ve Beta anahtarının durumunu Açık olarak değiştirebilirsiniz:
Anahtar Durum Beta Açık Yeni yapılandırma ayarlarını görmek için tarayıcı sayfasını yenileyin.

Kaynakları temizleme
Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız, ücretlendirmemek için burada oluşturduğunuz kaynak grubunu silin.
Önemli
Silinen kaynak grupları geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Bu makaleye ait kaynakları tutmak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden ayrı ayrı silin.
- Azure Portaloturum açın ve kaynak grupları' nı seçin.
- Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
- Sonuç listesinde, bir genel bakışı görmek için kaynak grubu adını seçin.
- Kaynak grubunu sil'i seçin.
- Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını girin ve Sil' i seçin.
Birkaç dakika sonra kaynak grubu ve tüm kaynakları silinir.
Sonraki adımlar
Bu hızlı başlangıçta, yeni bir Uygulama Yapılandırma deposu oluşturdunız ve bunu Özellik Yönetimi kitaplıkları aracılığıyla Spring Boot bir web uygulamasındaki özellikleri yönetmek için kullandınız.
- Özellik yönetimi hakkında daha fazla bilgi.
- Özellik bayraklarını yönetme.
- Spring Boot Core uygulamasında özellik bayraklarını kullanın.