خصائص التطبيق في الإقلاع الربيع سيرين بوت Spring Boot Application Properties#

خصائص التطبيق في الإقلاع الربيع سيرين بوت Spring Boot  Application Properties#

خصائص التطبيق في الإقلاع الربيع سيرين بوت Spring Boot  Application Properties#


خصائص التطبيق تدعمنا للعمل في بيئات مختلفه. في هذا الفصل ، ستتعلم كيفيه تكوين وتحديد الخصائص إلى تطبيق "التمهيد الربيع".

خصائص سطر الأوامر
تحويل تطبيق "التمهيد الربيع" خصائص سطر الأوامر إلى خصائص بيئة التمهيد الربيع. تاخذ خصائص سطر الأوامر الاسبقيه علي مصادر الخصائص الأخرى. بشكل افتراضي ، يستخدم "التمهيد الربيع" رقم المنفذ 8080 لبدء تشغيل Tomcat. دعوانا نتعلم كيفيه تغيير رقم المنفذ باستخدام خصائص سطر الأوامر.

الخطوة 1-بعد إنشاء ملف JAR قابل للتنفيذ ، تشغيله باستخدام الأمر java-جره .

الخطوة 2-استخدام الأمر المعطي في لقطه الشاشة المعطية أدناه لتغيير رقم المنفذ لتطبيق "التمهيد الربيع" باستخدام خصائص سطر الأوامر.

ملاحظه − يمكنك توفير أكثر من خصائص تطبيق واحد باستخدام المحدد −.

ملف الخصائص

يتم استخدام ملفات الخصائص للاحتفاظ ' N ' عدد الخصائص في ملف واحد لتشغيل التطبيق في بيئة مختلفه. في "التمهيد الربيع" ، يتم الاحتفاظ بالخصائص في ملف خصائص التطبيق تحت المشابك.

ملف خصائص التطبيق موجود في الدليل src/الرئيسي/الموارد. يتم إعطاء التعليمات البرمجية لملف خصائص التطبيق العينة أدناه −

server.port = 9090
spring.application.name = demoservice
لاحظ أنه في الكود الموضح أعلاه ، تبدأ الخدمة التجريبية لتطبيق Spring Boot على المنفذ 9090.

 ملف YAML

 يدعم Spring Boot تكوينات الخصائص القائمة على YAML لتشغيل التطبيق.  بدلاً من application.properties ، يمكننا استخدام ملف application.yml.  يجب أيضًا الاحتفاظ بملف YAML داخل classpath.  نموذج ملف application.yml موضح أدناه -

spring:
   application:
      name: demoservice
   server:
port: 9090

خصائص خارجية

 بدلاً من الاحتفاظ بملف الخصائص أسفل classpath ، يمكننا الاحتفاظ بالخصائص في موقع أو مسار مختلف.  أثناء تشغيل ملف JAR ، يمكننا تحديد مسار ملف الخصائص.  يمكنك استخدام الأمر التالي لتحديد موقع ملف الخصائص أثناء تشغيل JAR -


-Dspring.config.location = C:\application.properties



استخدام @Value Annotation

يتم استخدام التعليق التوضيحيValue لقراءة قيمة بيئة أو خاصية التطبيق في تعليمات Java البرمجية.  يظهر بناء الجملة لقراءة قيمة الخاصية أدناه -
@Value("${property_key_name}")
انظر المثال التالي الذي يعرض بناء الجملة لقراءة قيمة خاصية spring.application.name في متغير Java باستخدام @ Value.

@Value("${spring.application.name}")

راقب الكود الوارد أدناه لفهم أفضل -

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {
   @Value("${spring.application.name}")
   private String name;
   public static void main(String[] args) {
      SpringApplication.run(DemoApplication.class, args);
   }
   @RequestMapping(value = "/")
   public String name() {
      return name;
   }
}   

ملاحظة - إذا لم يتم العثور على الخاصية أثناء تشغيل التطبيق ، فإن Spring Boot يطرح استثناء وسيطة غير قانونية لأنه لا يمكن حل العنصر النائب 'spring.application.name' في القيمة "$ {spring.application.name}".
 لحل مشكلة العنصر النائب ، يمكننا تعيين القيمة الافتراضية للخاصية باستخدام بناء جملة thr الوارد أدناه -
@Value("${property_key_name:default_value}")

@Value("${spring.application.name:demoservice}")

Spring Boot Active Profile

يدعم Spring Boot خصائص مختلفة بناءً على ملف تعريف Spring النشط.  على سبيل المثال ، يمكننا الاحتفاظ بملفين منفصلين للتطوير والإنتاج لتشغيل تطبيق Spring Boot.

 الربيع الملف النشط في application.properties
 واسمحوا لنا أن نفهم كيفية الحصول على الربيع نشط الملف الشخصي في application.properties.  افتراضيا ، التطبيق.  سيتم استخدام الخصائص لتشغيل تطبيق Spring Boot.  إذا كنت ترغب في استخدام الخصائص القائمة على الملف الشخصي ، فيمكننا الاحتفاظ بملف خصائص منفصل لكل ملف تعريف كما هو موضح أدناه -

application.properties
server.port = 8080
spring.application.name = demoservice
application-dev.properties
server.port = 9090
spring.application.name = demoservice
application-prod.properties
server.port = 4431
spring.application.name = demoservice

أثناء تشغيل ملف JAR ، نحتاج إلى تحديد ملف التعريف النابض النابض استنادًا إلى كل ملف خصائص.  بشكل افتراضي ، يستخدم تطبيق Spring Boot ملف application.properties.  يظهر الأمر الخاص بضبط الملف النشط للنابض أدناه -


يمكنك رؤية اسم ملف التعريف النشط active profile في سجل وحدة التحكم كما هو موضح أدناه -
2017-11-26 08:13:16.322  INFO 14028 --- [           
   main] com.tutorialspoint.demo.DemoApplication  :
   The following profiles are active: dev
الآن ، بدأت Tomcat على المنفذ 9090 (http) كما هو موضح أدناه -

2017-11-26 08:13:20.185  INFO 14028 --- [           
   main] s.b.c.e.t.TomcatEmbeddedServletContainer : 
   Tomcat started on port(s): 9090 (http)

يمكنك تعيين ملف تعريف الإنتاج النشط كما هو موضح أدناه -

2017-11-26 08:13:16.322  INFO 14028 --- [           
   main] com.tutorialspoint.demo.DemoApplication  :
   The following profiles are active: prod

الآن ، بدأت Tomcat في المنفذ 4431 (http) كما هو موضح أدناه -
2017-11-26 08:13:20.185  INFO 14028 --- [          
   main] s.b.c.e.t.TomcatEmbeddedServletContainer :
   Tomcat started on port(s): 4431 (http)


الملف النشط الربيع ل application.yml
 دعونا نفهم كيفية الحفاظ على ملف تعريف الربيع النشط من أجل application.yml.  يمكننا الاحتفاظ بخصائص ملف التعريف النشط لـ Spring في ملف application.yml الفردي.  لا حاجة لاستخدام ملف منفصل مثل application.properties.
 فيما يلي رمز مثال للحفاظ على ملفات تعريف Spring النشطة في ملف application.yml.  لاحظ أنه يتم استخدام المحدد (---) لفصل كل ملف تعريف في ملف application.yml.

spring:
   application:
      name: demoservice
server:
   port: 8080

---
spring:
   profiles: dev
   application:
      name: demoservice
server:
   port: 9090

---
spring: 
   profiles: prod
   application:
      name: demoservice
server: 
   port: 4431

إلى الأمر لتعيين تطوير التشكيل الجانبي النشط ويرد أدناه -

يمكنك رؤية اسم ملف التعريف النشط في سجل وحدة التحكم كما هو موضح أدناه -

2017-11-26 08:41:37.202  INFO 14104 --- [           
   main] com.ahmedalmahallawi.demo.DemoApplication  : 
   The following profiles are active: dev

الآن ، بدأت Tomcat على المنفذ 9090 (http) كما هو موضح أدناه -
2017-11-26 08:41:46.650  INFO 14104 --- [           
   main] s.b.c.e.t.TomcatEmbeddedServletContainer : 
   Tomcat started on port(s): 9090 (http)

الأمر لتعيين الإنتاج النشط الشخصي ويرد أدناه -

يمكنك رؤية اسم ملف التعريف النشط في سجل وحدة التحكم كما هو موضح أدناه -
2017-11-26 08:43:10.743  INFO 13400 --- [    
   main] com.ahmedalmahallawi.DemoApplication  : 
   The following profiles are active: prod
سيبدأ هذا Tomcat على المنفذ 4431 (http) كما هو موضح أدناه:
2017-11-26 08:43:14.473  INFO 13400 --- [     
   main] s.b.c.e.t.TomcatEmbeddedServletContainer : 
   Tomcat started on port(s): 4431 (http)