كيفية تحصيل حزمة رسائل الربيع خارج الحرب
-
21-09-2019 - |
سؤال
لا بد لي من تقديم حزمة SPRING MessageSources للحصول على دعم I18N (ملفات الخصائص) خارج ClassPath من أجل تعديل الخصائص بسهولة أكبر. كيف أقوم بذلك ؟
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="test-messages"/>
شكرًا!
المحلول
لقد قمنا ببناء تطبيق مصدر الرسائل يبحث عن الرسائل في DB. ما عليك فعله هو إنشاء تطبيق MessageSource الذي يرث من SPRING AbstractMessagesource (من أجل الحصول على جميع الميزات ، انظر Javadoc).
يجب عليك تنفيذ الحد الأدنى من الطريقة المجردة "SELELVECODE (سلسلة ، لغة)" (ولكن تنفيذ "SELEDECODEWITHATARGUMITS (سلسلة ، لغة) هذه:
table translation (
translation_id number pk
code varchar(20)
locale varchar(5)
translation varchar(100)
)
الكود والمحطة تشكل فهرس فريد.
إنتهيت. بالطبع ، ستضيف بعض إمكانيات ذاكرة التخزين المؤقت ، وتوفر سلوك "تدهور موضعي" (أي إذا لم يتم العثور على "EN_US" ، حاول "en") ، إما على مستوى Dao- أو على مستوى الرسائل.
هذا يعمل تماما.
نصائح أخرى
افحص هذا مسلك للحصول على معلومات تتعلق بهذه المشكلة ، لكنني أعتقد أنها ليست ممارسة جيدة للحصول على ملفات خارج سياق Tomcat لأنك لا تعرف أبدًا أين سيتم نشر طلبك.
ولكن في حال احتجت ، ستجد بعض الحلول الجميلة هناك.