Spring IoC контейнер: дополнительные возможности ApplicationContext, удобный доступ к низкоуровневым ресурсам

Контекст приложения - это ResourceLoader, который можно использовать для загрузки объектов Resource. Resource - это, по сути, более функциональная версия класса JDK java.net.URL. Фактически, реализации Resource оборачивают экземпляр java.net.URL, где это необходимо. Resource может прозрачным образом получать ресурсы низкого уровня практически из любого места, включая путь к классам, расположение файловой системы, любое место, описываемое стандартным URL-адресом, и некоторые другие варианты. Если строка местоположения ресурса представляет собой простой путь без каких-либо специальных префиксов, то источник этих ресурсов является конкретным и соответствует фактическому типу контекста приложения.

Вы можете настроить компонент, развернутый в контексте приложения, для реализации специального интерфейса обратного вызова, ResourceLoaderAware, который будет автоматически вызываться во время инициализации с самим контекстом приложения, переданным как ResourceLoader. Вы также можете предоставить свойства типа Resource, которые будут использоваться для доступа к статическим ресурсам. Они вводятся в него, как и любые другие свойства. Вы можете указать эти свойства ресурса как простые строковые пути и полагаться на автоматическое преобразование этих текстовых строк в фактические объекты ресурсов при развертывании компонента.

Путь или пути расположения, предоставленные конструктору ApplicationContext, на самом деле являются строками ресурсов и, в простой форме, обрабатываются соответствующим образом в соответствии с конкретной реализацией контекста. Например, ClassPathXmlApplicationContext обрабатывает простой путь расположения как расположение пути к классам. Вы также можете использовать пути расположения (строки ресурсов) со специальными префиксами для принудительной загрузки определений из пути к классам или URL-адреса, независимо от фактического типа контекста.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки