بدء التشغيل السريع: إضافة إشارات الميزات إلى تطبيق Spring Boot
في بدء التشغيل السريع، يمكنك دمج 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>5.8.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
إشعار
- توجد مكتبة إدارة الميزات غير متصلة بالويب، ولا تعتمد على صفحة ويب spring. راجع وثائق GitHub لمعرفة الاختلافات.
الاتصال بمخزن تكوين التطبيق
انتقل إلى
resources
دليل التطبيق وافتحbootstrap.properties
. إذا كان الملف غير موجودًا، فقم بإنشائه. أضف السطر التالي إلى الملف.spring.cloud.azure.appconfiguration.stores[0].connection-string= ${APP_CONFIGURATION_CONNECTION_STRING} spring.cloud.azure.appconfiguration.stores[0].feature-flags.enabled=true
قم بتعيين متغير بيئة باسم APP_CONFIGURATION_CONNECTION_STRING، واضبطه على سلسلة الاتصال إلى متجر تكوين التطبيق. في سطر الأوامر، قم بتشغيل الأمر التالي وأعد تشغيل موجه الأوامر للسماح بتنفيذ التغيير:
لإنشاء التطبيق وتشغيله محليًا باستخدام موجه أوامر Windows، قم بتشغيل الأمر التالي:
setx APP_CONFIGURATION_CONNECTION_STRING "connection-string-of-your-app-configuration-store"
أعد تشغيل موجه الأمر للسماح بالتغيير لأن يكون حيز التنفيذ. اطبع قيمة متغير البيئة للتحقق من تعيينه بشكل صحيح.
أنشئ ملف Java جديدا باسم HelloController.java في دليل حزمة التطبيق الخاص بك.
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"; } }
أنشئ ملف 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%; }
يوصى بإنشاء التطبيق وتشغيله محليًا
قم ببناء تطبيق Spring Boot الخاص بك مع Maven وتشغيله.
mvn clean package mvn spring-boot:run
افتح نافذة مستعرض، ثم انتقل إلى عنوان URL:
http://localhost:8080/welcome
.في مدخل App Configuration، حدد Feature Manager، وغير حالة مفتاح Beta إلى On:
المفتاح الولاية Beta تشغيل قم بتحديث صفحة المتصفح لرؤية إعدادات التكوين الجديدة.
تنظيف الموارد
إذا كنت لا تريد مواصلة استخدام الموارد التي تم إنشاؤها في هذه المقالة، يوصى بحذف مجموعة الموارد التي أنشأتها هنا لتجنب الرسوم.
هام
حذف مجموعة الموارد لا يمكن التراجع عنه. يتم حذف مجموعة الموارد وجميع الموارد المضمنة فيها نهائيًا. تأكد من عدم حذفك للموارد أو مجموعة المورد الخاطئة عن غير قصد. في حالة إنشاء الموارد لهذه المقالة داخل مجموعة موارد تشتمل على موارد أخرى تريد الاحتفاظ بها، احذف كل مورد على حدة من الجزء الخاص به بدلًا من حذف مجموعة الموارد.
- سجل الدخول إلى مدخل Microsoft Azure، وحدد Resource groups.
- في المربع تصفية حسب الاسم ، أدخل اسم مجموعة الموارد الخاصة بك.
- في قائمة النتائج، حدد اسم مجموعة الموارد لاستعراض نظرة عامة.
- حدد Delete resource group.
- يُطلب منك تأكيد حذف مجموعة الموارد. أدخل اسم مجموعة الموارد للتأكيد وحدد "Delete".
بعد بضع لحظات، يتم حذف مجموعة الموارد وكافة مواردها.
الخطوات التالية
في هذا التشغيل السريع، قمت بإنشاء متجر App Configuration جديد واستخدامه لإدارة الميزات في تطبيق ويب Spring Boot عبر مكتبات إدارة الميزات.
- الوثائق المرجعيةللمكتبة
- تعرف على المزيد حول feature management.
- إدارة علامات الميزات.
- استخدم علامات الميزات في تطبيق Spring Boot Core.