ResourceLoaderAware interfeysi - bu maxsus callback interfeysi bo'lib, ResourceLoaderga havolani qabul qiladigan komponentlarni aniqlaydi. Quyidagi ro'yxatda ResourceLoaderAware interfeysining ta'rifi keltirilgan:
public interface ResourceLoaderAware {
void setResourceLoader(ResourceLoader resourceLoader);
}
Agar sinf ResourceLoaderAwareni amalga oshirsa va ilova kontekstida (Spring tomonidan boshqariladigan bean sifatida) joylashtirilsa, u ilova konteksti tomonidan ResourceLoaderAware sifatida tan olinadi. Keyin ilova konteksti o'zini argument sifatida taqdim etib, setResourceLoader(ResourceLoader)ga murojaat qiladi (barcha ilova kontekstlari Springda ResourceLoader interfeysini amalga oshirganligini yodda tuting).
ApplicationContext ResourceLoader bo'lganligi sababli, bean interfeysni ApplicationContextAwareni amalga oshirishi va resurslarni yuklash uchun taqdim etilgan ilova kontekstini bevosita foydalanishi ham mumkin. Lekin, umumiy holda, faqat zarur bo'lgan narsa bo'lsa, ResourceLoader maxsus interfeysdan foydalanish ma'qul. Kod faqat resurs yuklash interfeysiga bog'liq bo'ladi (uni xizmat interfeysi sifatida ko'rish mumkin), Spring ApplicationContext interfeysning butuniga emas.
Ilova komponentlarida ResourceLoaderni avtomatik aniqlash va bog'lashga tayanish ResourceLoaderAware interfeysini amalga oshirishga alternativ sifatida ham mumkin. An'anaviy avtomatik aniqlash va bog'lash rejimlari constructor va byType, tegishli ravishda ResourceLoaderni konstruktor argumenti yoki setter parametri uchun taqdim etishga qodir. Kengroq moslashuvchanlik uchun (shu jumladan ko'p parametrli metodlarni avtomatik aniqlash va bog'lash imkoniyati) annotatsiyalar asosidagi avtomatik aniqlash va bog'lash funksiyalarini ishlatishni ko'rib chiqing. Bunday holda, ResourceLoader annotatsiyalangan @Autowiredga ega bo'lgan joyda, konstruktor yoki metod argumenti yoki maydon sifatida ResourceLoader tipini kutayotganiga avtomatik aniqlanadi va bog'lanadi.
classpath*:ni ishlatadigan yoki joker belgilarni o'z ichiga olgan yo'lga bir yoki bir nechta
Resource obyektini yuklash kerak bo'lsa, ilova komponentlariga
ResourceLoader o'rniga
ResourcePatternResolverning nusxasi bilan bog'lanish kerak.
GO TO FULL VERSION