إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في بدء التشغيل السريع، يمكنك دمج Azure App Configuration في تطبيق ويب Spring Boot لإنشاء تطبيق شامل لإدارة الميزات. يمكنك استخدام App Configuration لتخزين جميع علامات الميزات الخاصة بك مركزيا والتحكم في حالاتها.
توسع مكتبات Spring Boot Feature Management الإطار مع دعم علامة الميزات الشاملة. لا تعتمد هذه المكتبات على أي مكتبات Azure. كما أنها تتكامل بسلاسة مع App Configuration من خلال مزود تكوين Spring Boot الخاص بها.
المتطلبات الأساسية
- حساب Azure مع اشتراك نشط. أنشئ حسابًا مجانًا.
- متجر App Configuration، كما هو موضح في البرنامج التعليمي لإنشاء متجر.
- دعم Java Development Kit SDK بالإصدار 11.
- إصدار Apache Maven 3.0 أو أعلى.
إضافة علامة ميزة
أضف علامة ميزة تسمى Beta إلى متجر App Configuration واترك Label and Description بقيمها الافتراضية. لمزيد من المعلومات حول كيفية إضافة علامات الميزات إلى متجر باستخدام مدخل Microsoft Azure أو CLI، انتقل إلى إنشاء علامة ميزة.
إنشاء تطبيق Spring Boot
لإنشاء مشروع Spring Boot جديد:
استعرض للوصول إلى Spring Initializr.
حدد الخيارات التالية:
- إنشاء مشروع Maven باستخدام Java.
- حدد إصدار Spring Boot الذي يساوي أو أكبر من 2.0.
-
حدد أسماء المجموعة والبيانات الاصطناعية للتطبيق الخاص بك. تستخدم
com.exampleهذه المقالة وdemo. - أضف تبعية Spring Web.
بعد تحديد الخيارات السابقة، حدد إنشاء مشروع. قم بتنزيل المشروع إلى الكمبيوتر المحلي عندما يُطلب منك ذلك.
أضف إدارة الميزات
بعد استخراج الملفات على نظامك المحلي، يكون تطبيق Spring Boot الخاص بك جاهزًا للتحرير. حدد موقع pom.xml في الدليل الجذري لتطبيقك.
افتح ملف pom.xml في محرر نص وأضف ما يلي إلى قائمة
<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>
إشعار
- هناك مكتبة إدارة ميزات غير تابعة للويب لا تعتمد على spring-web. راجع وثائق GitHub لمعرفة الاختلافات.
الاتصال بمخزن تكوين التطبيق
انتقل إلى
resourcesدليل التطبيق وافتحbootstrap.propertiesالملف أوbootstrap.yaml. إذا لم يكن الملف موجودًا، قم بإنشائه.يمكنك الاتصال بمخزن App Configuration باستخدام معرف Microsoft Entra (مستحسن) أو سلسلة الاتصال.
تحديث ملفات التكوين الخاصة بك.
إذا كنت تستخدم ملف خصائص، فاستخدم التعليمات البرمجية التالية:
spring.config.import=azureAppConfiguration spring.cloud.azure.appconfiguration.stores[0].endpoint= ${APP_CONFIGURATION_ENDPOINT} spring.cloud.azure.appconfiguration.stores[0].feature-flags.enabled=trueإذا كنت تستخدم ملف yaml، فاستخدم التعليمات البرمجية التالية:
spring: config: import: azureAppConfiguration cloud: azure: appconfiguration: stores: - feature-flags: enabled: true endpoint: ${APP_CONFIGURATION_ENDPOINT}يمكنك استخدام
DefaultAzureCredentialللمصادقة على متجر App Configuration. اتبع الإرشادات لتعيين بيانات الاعتماد الخاصة بك دور قارئ بيانات تكوين التطبيق. تأكد من السماح بوقت كاف للإذن للنشر قبل تشغيل التطبيق الخاص بك.أضف التعليمات البرمجية التالية إلى مشروعك، إلا إذا كنت تريد استخدام الهوية المدارة. إنشاء ملف جديد باسم
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()); } }أنشئ ملفا جديدا باسم
MyConfiguration.javaوأضف الأسطر التالية:import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyConfiguration { @Bean public AppConfigCredential clientSetup() { return new AppConfigCredential(); } }إضافة تكوين Bootstrap Configuration، عن طريق إنشاء
spring.factoriesملف ضمنresources/META-INFالدليل وإضافة الأسطر التالية والتحديثcom.example.MyConfigurationمع حزمة التطبيق الخاص بك:org.springframework.cloud.bootstrap.BootstrapConfiguration=\ com.example.MyConfiguration
أنشئ ملف Java جديدا باسم 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"; } }أنشئ ملف HTML جديدا باسم 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">© 2019 - Projects</span> </div> </footer> </body> </html>أنشئ مجلدا جديدا باسم CSS ضمنه
staticوداخله ملف CSS جديدا يسمى 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%; }
يوصى بإنشاء التطبيق وتشغيله محليًا
تعيين متغير بيئة.
قم بتعيين متغير البيئة المسمى APP_CONFIGURATION_ENDPOINT إلى نقطة نهاية متجر App Configuration الموجود ضمن نظرة عامة على متجرك في مدخل Microsoft Azure.
إذا كنت تستخدم موجه الأوامر Windows، فشغل الأمر التالي، ثم أعد تشغيل موجه الأوامر للسماح للتغيير بتنفيذ الأمر:
setx APP_CONFIGURATION_ENDPOINT "endpoint-of-your-app-configuration-store"إذا كنت تستخدم PowerShell، فقم بتشغيل الأمر التالي:
$Env:APP_CONFIGURATION_ENDPOINT = "<endpoint-of-your-app-configuration-store>"إذا كنت تستخدم macOS أو Linux، فقم بإجراء الأمر التالي:
export APP_CONFIGURATION_ENDPOINT='<endpoint-of-your-app-configuration-store>'أعد تشغيل موجه الأمر للسماح بالتغيير لأن يكون حيز التنفيذ. اطبع قيمة متغير البيئة للتحقق من تعيينه بشكل صحيح.
قم ببناء تطبيق Spring Boot الخاص بك مع Maven وتشغيله.
mvn clean package mvn spring-boot:runافتح نافذة مستعرض، ثم انتقل إلى عنوان URL:
http://localhost:8080/welcome.
في مدخل App Configuration، حدد Feature Manager، وغير حالة مفتاح Beta إلى On:
مفتاح المنطقة الإصدار بيتا تشغيل قم بتحديث صفحة المتصفح لرؤية إعدادات التكوين الجديدة.
تنظيف الموارد
إذا كنت لا تريد مواصلة استخدام الموارد التي تم إنشاؤها في هذه المقالة، يوصى بحذف مجموعة الموارد التي أنشأتها هنا لتجنب الرسوم.
هام
حذف مجموعة الموارد لا يمكن التراجع عنه. يتم حذف مجموعة الموارد وجميع الموارد المضمنة فيها نهائيًا. تأكد من عدم حذفك للموارد أو مجموعة المورد الخاطئة عن غير قصد. في حالة إنشاء الموارد لهذه المقالة داخل مجموعة موارد تشتمل على موارد أخرى تريد الاحتفاظ بها، احذف كل مورد على حدة من الجزء الخاص به بدلًا من حذف مجموعة الموارد.
- سجل الدخول إلى مدخل Microsoft Azure، وحدد Resource groups.
- في المربع تصفية حسب الاسم ، أدخل اسم مجموعة الموارد الخاصة بك.
- في قائمة النتائج، حدد اسم مجموعة الموارد لاستعراض نظرة عامة.
- حدد Delete resource group.
- يُطلب منك تأكيد حذف مجموعة الموارد. أدخل اسم مجموعة الموارد للتأكيد وحدد "Delete".
بعد بضع لحظات، يتم حذف مجموعة الموارد وكافة مواردها.
الخطوات التالية
في هذا التشغيل السريع، قمت بإنشاء متجر App Configuration جديد واستخدامه لإدارة الميزات في تطبيق ويب Spring Boot عبر مكتبات إدارة الميزات.
- الوثائق المرجعيةللمكتبة
- تعرف على المزيد حول feature management.
- إدارة علامات الميزات.
- استخدم علامات الميزات في تطبيق Spring Boot Core.