8-modul · 8-dars: MultipartResolver · MessageSource · Locale
Daraja: Ilg'or
MultipartResolver · MessageSource · Locale. Spring Framework bo‘yicha nazariya, amaliy namuna va mustaqil mashq.
Tushuntirish
## Dars maqsadi MultipartResolver · MessageSource · Locale tushunchalarini farqlash, nima uchun kerakligini izohlash va kichik misolda qo‘llash.
## Nazariya MultipartResolver Spring MVCga multipart requestni tushunishga yordam beradigan strategiyadir. Servlet asosidagi konfiguratsiyada container limitlari ham hisobga olinadi. MultipartFile fayl nomi, hajmi, content type va streamni beradi; u tekshirilgan xavfsiz fayl degani emas. Yuklama limitini proxy, container va ilova qatlamlarida bir-biriga moslang. MessageSource kalit va locale bo'yicha xabar topadi. LocaleResolver request uchun tilni aniqlaydi; Accept-Language, cookie yoki sessionga tayangan yechimlar mavjud. LocaleChangeInterceptor so'rov parametridan til almashtirishni qo'llashi mumkin, lekin tanlangan resolver buni qo'llashi kerak. Ruxsat etilgan locale ro'yxatini cheklang. Tarjima faqat UI matnini emas, sana, raqam va validation xabarlarini ham qamrab oladi. Foydalanuvchining tili serverning global default locale qiymatini request davomida almashtirish bilan boshqarilmaydi: parallel foydalanuvchilar bor. Tarjima topilmaganda fallback siyosatini belgilang va foydalanuvchi kontentini avtomatik tarjima qilingan deb ko'rsatmang.
## Manbalar [Moduldagi savollar yo‘nalishi](https://github.com/jlkesh/pdp_online_java_lessons/blob/main/interviewquestions/8-module%28Spring%20Introduction%29.md) [Rasmiy qo‘llanma](https://docs.spring.io/spring-framework/reference/)
Kod quyida o‘quv namunasi sifatida berilgan. To‘liq ilova uchun import, dependency va konfiguratsiya kerak bo‘lishi mumkin. SQLni faqat ajratilgan test bazasida bajaring.
Kod misoli
String message = messageSource.getMessage(
"note.saved", new Object[]{3}, java.util.Locale.forLanguageTag("uz"));
// messages_uz.properties ichida: note.saved={0} ta yozuv saqlandi
Keng tarqalgan xatolar
- AcceptHeaderLocaleResolver bilan parametr orqali tilni majburan o'zgartirishni bir xil mexanizm deb bilmang.
Mashqlar
- Bir validation xabarini uz va en locale bilan tekshiring; topilmagan kalit uchun fallback belgilang.
- Ikki tilda xabar fayli yaratib, Accept-Language ga qarab javob o'zgarishini sinang.
Teglar: nazariya, modul-08, pdp