ResourceLoader interfeysi Resource nusxalarini qaytarishi (ya'ni yuklashi) mumkin bo'lgan obyektlar uchun mo'ljallangan. Quyidagi listingda ResourceLoader interfeysining ta'rifi ko'rsatilgan:
public interface ResourceLoader {
Resource getResource(String location);
ClassLoader getClassLoader();
}
Barcha dastur kontekstlari ResourceLoader interfeysini amalga oshiradi. Shuning uchun barcha dastur kontekstlaridan Resource nusxalarini olish uchun foydalanish mumkin.
Agar siz ma'lum bir dastur konteksti uchun getResource() ni chaqirsangiz va ko'rsatilgan joy yo'li ma'lum bir prefiksga ega bo'lmasa, siz qaytgan Resource turi aynan shu dastur kontekstiga mos keladi. Misol uchun, quyidagi kod parcha ClassPathXmlApplicationContext nusxasi uchun ishga tushirilgan deb faraz qilamiz:
Resource template = ctx.getResource("some/resource/path/myTemplate.txt");
val template = ctx.getResource("some/resource/path/myTemplate.txt")
ClassPathXmlApplicationContext uchun bu kod ClassPathResource qaytaradi. Agar shu metod FileSystemXmlApplicationContext nusxasi uchun ishlatilganida, u FileSystemResource qaytargan bo'lardi. WebApplicationContext da esa u ServletContextResource qaytaradi. Shu tarzda, har bir kontekst uchun tegishli obyektlar qaytariladi.
Natijada, ma'lum bir dastur kontekstiga qarab resurslarni yuklash mumkin bo'ladi.
Boshqa tomondan, siz ClassPathResource ni dastur konteksti turidan qat'i nazar classpath: maxsus prefiksini ko'rsatib majburan ishlatishingiz mumkin, quyidagi misolda ko'rsatilgandek:
Resource template = ctx.getResource("classpath:some/resource/path/myTemplate.txt");
val template = ctx.getResource("classpath:some/resource/path/myTemplate.txt")
Xuddi shunday, siz standart java.net.URL prefikslaridan birini ko'rsatib UrlResource ni majburan ishlatishingiz mumkin. Quyidagi misollarda file va https prefikslari ishlatiladi:
Resource template = ctx.getResource("file:///some/resource/path/myTemplate.txt");
val template = ctx.getResource("file:///some/resource/path/myTemplate.txt")
Resource template = ctx.getResource("https://myhost.com/resource/path/myTemplate.txt");
val template = ctx.getResource("https://myhost.com/resource/path/myTemplate.txt")
Quyidagi jadvalda String obyektlarini Resource obyektlariga aylantirish strategiyasi qisqacha bayon qilingan:
| Prefiks | Misol | Izoh |
|---|---|---|
| classpath: |
|
Sinf yo'lidan yuklanadi. |
| file: |
|
Fayl tizimidan |
| https: |
|
|
| (none) |
|
|
GO TO FULL VERSION