بدء التشغيل السريع: إضافة إشارات الميزات إلى تطبيق Spring Boot

في بدء التشغيل السريع، يمكنك دمج Azure App Configuration في تطبيق ويب Spring Boot لإنشاء تطبيق شامل لإدارة الميزات. يمكنك استخدام App Configuration لتخزين جميع علامات الميزات الخاصة بك مركزيا والتحكم في حالاتها.

توسع مكتبات Spring Boot Feature Management الإطار مع دعم علامة الميزات الشاملة. لا تعتمد هذه المكتبات على أي مكتبات Azure. كما أنها تتكامل بسلاسة مع App Configuration من خلال مزود تكوين Spring Boot الخاص بها.

المتطلبات الأساسية

إضافة علامة ميزة

أضف علامة ميزة تسمى Beta إلى متجر App Configuration واترك Label and Description بقيمها الافتراضية. لمزيد من المعلومات حول كيفية إضافة علامات الميزات إلى متجر باستخدام مدخل Microsoft Azure أو CLI، انتقل إلى إنشاء علامة ميزة.

تفعيل علامة الميزة المسماة Beta

إنشاء تطبيق Spring Boot

لإنشاء مشروع Spring Boot جديد:

  1. استعرض للوصول إلى Spring Initializr.

  2. حدد الخيارات التالية:

    • إنشاء مشروع Maven باستخدام Java.
    • حدد إصدار Spring Boot الذي يساوي أو أكبر من 2.0.
    • حدد أسماء المجموعة والبيانات الاصطناعية للتطبيق الخاص بك. تستخدم com.example هذه المقالة و demo.
    • أضف تبعية Spring Web.
  3. بعد تحديد الخيارات السابقة، حدد إنشاء مشروع. قم بتنزيل المشروع إلى الكمبيوتر المحلي عندما يُطلب منك ذلك.

أضف إدارة الميزات

  1. بعد استخراج الملفات على نظامك المحلي، يكون تطبيق Spring Boot الخاص بك جاهزًا للتحرير. حدد موقع pom.xml في الدليل الجذري لتطبيقك.

  2. افتح ملف 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 لمعرفة الاختلافات.

الاتصال بمخزن تكوين التطبيق

  1. انتقل إلى 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
    
  2. قم بتعيين متغير بيئة باسم APP_CONFIGURATION_CONNECTION_STRING، واضبطه على سلسلة الاتصال إلى متجر تكوين التطبيق. في سطر الأوامر، قم بتشغيل الأمر التالي وأعد تشغيل موجه الأوامر للسماح بتنفيذ التغيير:

    لإنشاء التطبيق وتشغيله محليًا باستخدام موجه أوامر Windows، قم بتشغيل الأمر التالي:

    setx APP_CONFIGURATION_CONNECTION_STRING "connection-string-of-your-app-configuration-store"
    

    أعد تشغيل موجه الأمر للسماح بالتغيير لأن يكون حيز التنفيذ. اطبع قيمة متغير البيئة للتحقق من تعيينه بشكل صحيح.

  3. أنشئ ملف 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";
        }
    }
    
  4. أنشئ ملف 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">&copy; 2019 - Projects</span>
        </div>
    
        </footer>
    </body>
    </html>
    
    
  5. أنشئ مجلدا جديدا باسم 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%;
    }
    

يوصى بإنشاء التطبيق وتشغيله محليًا

  1. قم ببناء تطبيق Spring Boot الخاص بك مع Maven وتشغيله.

    mvn clean package
    mvn spring-boot:run
    
  2. افتح نافذة مستعرض، ثم انتقل إلى عنوان URL: http://localhost:8080/welcome.

    تُظهر لقطة الشاشة نافذة مُتصفح مع رسالة ترحيب.

  3. في مدخل App Configuration، حدد Feature Manager، وغير حالة مفتاح Beta إلى On:

    المفتاح الولاية
    Beta تشغيل
  4. قم بتحديث صفحة المتصفح لرؤية إعدادات التكوين الجديدة.

    تظهر لقطة الشاشة نافذة متصفح مع رسالة ترحيب، ورابط Beta المُستدعى.

تنظيف الموارد

إذا كنت لا تريد مواصلة استخدام الموارد التي تم إنشاؤها في هذه المقالة، يوصى بحذف مجموعة الموارد التي أنشأتها هنا لتجنب الرسوم.

هام

حذف مجموعة الموارد لا يمكن التراجع عنه. يتم حذف مجموعة الموارد وجميع الموارد المضمنة فيها نهائيًا. تأكد من عدم حذفك للموارد أو مجموعة المورد الخاطئة عن غير قصد. في حالة إنشاء الموارد لهذه المقالة داخل مجموعة موارد تشتمل على موارد أخرى تريد الاحتفاظ بها، احذف كل مورد على حدة من الجزء الخاص به بدلًا من حذف مجموعة الموارد.

  1. سجل الدخول إلى مدخل Microsoft Azure، وحدد Resource groups.
  2. في المربع تصفية حسب الاسم ، أدخل اسم مجموعة الموارد الخاصة بك.
  3. في قائمة النتائج، حدد اسم مجموعة الموارد لاستعراض نظرة عامة.
  4. حدد Delete resource group.
  5. يُطلب منك تأكيد حذف مجموعة الموارد. أدخل اسم مجموعة الموارد للتأكيد وحدد "Delete".

بعد بضع لحظات، يتم حذف مجموعة الموارد وكافة مواردها.

الخطوات التالية

في هذا التشغيل السريع، قمت بإنشاء متجر App Configuration جديد واستخدامه لإدارة الميزات في تطبيق ويب Spring Boot عبر مكتبات إدارة الميزات.