Классы и Аннотации 2 Flashcards
класс Resource
Это интерфейс, который представляет собой абстракцию над доступом к различным типам ресурсов, таким как файлы, ресурсы из classPass, ресурсы по URL, и другие источники.
Он используется для унифицированного доступа к любым ресурсам, независимо от их местоположения.
Делает код гибким и независимым от типа и местоположения данных, что упрощает их интеграцию в различные части системы.
Основные задачи класса Resource
= Предоставление унифицированного доступа к различным типам ресурсов (файлы, URL, класспат ресурсы).
= Чтение содержимого ресурса через потоки ввода.
= Абстракция над типом ресурса: Код, работающий с Resource, не зависит от того, где находится ресурс.
Основные типы ресурсов с которыми работает класс Resource
= FileSystemResource: Представляет ресурс из файловой системы.
= ClasspathResource: Представляет ресурс, загружаемый из класспата (например, ресурсы внутри JAR-файлов).
= UrlResource:
Представляет ресурс, загружаемый через URL.
= ServletContextResource: Ресурс, загружаемый из веб-контекста (например, в веб-приложениях).
Основные методы интерфейса Resource
= getInputStream():
Возвращает InputStream для чтения содержимого ресурса.
= exists():
Проверяет, существует ли ресурс.
= isReadable():
Проверяет, можно ли читать содержимое ресурса.
= getFile():
Возвращает ресурс как объект File (если это файл в файловой системе).
= getURI() и getURL():
Возвращает URI или URL для ресурса.
= getDescription():
Возвращает описание ресурса (например, путь к файлу или URL).
Resource resource
= new ClassPathResource
(“data/file.txt”);
if (resource.exists()) {
InputStream inputStream = resource
.getInputStream();
// Чтение данных из файла
}
класс ResourceLoader
ResourceLoader — это интерфейс в Spring Framework, который предоставляет унифицированный способ для загрузки различных типов ресурсов, таких как файлы, URL-ресурсы, ресурсы из classPass и других источников.
Это удобный механизм для работы с внешними файлами и данными, необходимыми для приложения, независимо от их расположения.
Делает код гибким и независимым от типа и местоположения данных, что упрощает их интеграцию в различные части системы.
- Обеспечивает загрузку файлов, URL или других ресурсов с помощью строки пути.
- Позволяет загружать ресурсы независимо от их местоположения, используя простую строку и различные префиксы (например, classpath:, file:, http:).
Основные методы класса ResourceLoader
- getResource(String location): Возвращает объект Resource, который представляет указанный ресурс.
- getClassLoader(): Возвращает ClassLoader, который может использоваться для загрузки классов и ресурсов.
Класс ClassLoader
Это стандартный класс в Java, отвечающий за динамическую загрузку классов в JVM во время выполнения программы.
Он загружает классы и ресурсы (такие как файлы или другие данные), определяя их из файловой системы, сетевых источников или других мест.
Каждый загруженный класс в Java связан с определенным загрузчиком классов, что играет важную роль в модульности и изоляции в Java-программах.
Основные задачи ClassLoader
= Динамическая загрузка классов: Загрузчик классов загружает классы по мере их использования в программе, это позволяет JVM эффективно управлять памятью.
= Загрузка ресурсов:
Помимо классов, загрузчик может также загружать ресурсы, такие как файлы конфигураций, изображения и другие файлы, связанные с приложением.
= Модульность и изоляция классов:
Позволяет создавать несколько изолированных контекстов для работы с разными классами (например, в сервлет-контейнерах или в системах с плагинами).
Основные методы класса ClassLoader
- loadClass(String name):
Загружает класс по его полному имени. - getResource(String name):
Возвращает ресурс как URL, загруженный загрузчиком классов. - getResourceAsStream(String name):
Возвращает ресурс как InputStream. - getParent():
Возвращает родительский загрузчик классов. - findClass(String name):
Находит класс по его имени (обычно переопределяется при создании собственного загрузчика классов).