English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
تفسير قراءة وتطبيق ملف properties في Spring
في المشاريع الفعلية، عادة ما يتم وضع بعض المعلومات القابلة للتعديل والمخصصة في ملفات الخصائص (مثل معلومات اتصال قاعدة البيانات، إعدادات إرسال البريد الإلكتروني، إلخ) لسهولة إدارة التكوين الموحد. في المثال، يتم وضع معلومات الخصائص التي يجب تكوينها في ملف الخصائص /WEB-INF/configInfo.properties.
بعض معلومات الإعدادات (معرفات إرسال البريد الإلكتروني):
# إعدادات إرسال البريد الإلكتروني البريد الإلكتروني.خادم = smtp.163.com البريد الإلكتروني.منفذ = xxx البريد الإلكتروني.اسم المستخدم = xxx البريد الإلكتروني.كلمة المرور = xxx البريد الإلكتروني.إرسالمن = [email protected]
عند بدء تشغيل حاوية Spring، يتم استخدام bean المدمج لتحميل معلومات ملف الخاصية، في ملف bean.xml يضاف كما يلي:
كود Xml
<!-- محمل خاصيات Spring، تحميل خاصيات ملفات properties --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location"> <value>/WEB-INF/configInfo.properties</value> </property> <property name="fileEncoding" value="utf-8" /> </bean>
أحد الطرق للحصول على معلومات الخاصية بعد تحميلها هو التطرق إلى القيمة مباشرة بناءً على مفتاح المعلومات في تعريف bean آخر، مثل تكوين bean ماسنجر البريد الإلكتروني كما يلي:
كود Xml
<!-- إرسال البريد الإلكتروني --> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host"> <value>${email.host}</value> </property> <property name="port"> <value>${email.port}</value> </property> <property name="username"> <value>${email.username}</value> </property> <property name="password"> <value>${email.password}</value> </property> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="sendFrom">${email.sendFrom}</prop> </props> </property> </bean>
طريقة أخرى لاستخدامها هي الحصول على معلومات الخاصية المحددة في الكود، يمكن تعريف javabean: ConfigInfo.java، باستخدام التتبع لحقول المعلومات التي تحتاج إلى استخدامها في الكود؛ مثل المعلومات التالية في ملف الخاصية يجب الحصول عليها واستخدامها في الكود:
كود Java
#جمع الملفات لتحديد مسار file.savePath = D:/test/ #توليد مسار نسخة احتياطية للملف، بعد الاستخدام يتم نقل الملف إلى هذا الدليل file.backupPath = D:/test bak/
كود المشاركة في ConfigInfo.java
كود Java
@Component("configInfo") public class ConfigInfo { @Value("${file.savePath}") private String fileSavePath; @Value("${file.backupPath}") private String fileBakPath; public String getFileSavePath() { return fileSavePath; } public String getFileBakPath() { return fileBakPath; } }
استخدام التدقيق بالتعليقات في فئة bo لاستيراد كلاس ConfigInfo
كود Java
@Autowired private ConfigInfo configInfo;
يجب إضافة مسحوق التحقق في bean.xml لاستخدام مسحوق التحقق للتحقين التلقائي بالتدقيق بالتعليقات
كود Xml
<context:component-scan base-package="com.my.model" />
(يحتوي الملف model المذكور أعلاه على كلاس ConfigInfo).
للحصول على معلومات الخصائص المطلوبة باستخدام طريقة get، يوجد ميزة أن تكون سهلة الاستخدام في الكود، لكن العيب هو أنه إذا كان من الضروري استخدام معلومات الخصائص الجديدة في الكود، يجب إضافة أو تعديل ConfigInfo.java بشكل مناسب.
شكرًا على القراءة، آمل أن يساعدكم هذا، شكرًا لدعمكم لموقعنا!