Что в себе содержит Environment?

333
27 мая 2017, 16:16

Добрый день. Какую информацию в себе содержит интерфейс Environment? Я так понимаю это интерфейс для работы с properties? Откуда он берёт эти properties? И как его можно настроить таким образом, что-бы он работал с *.properties в моём приложении?

Answer 1

Интерфейс Environment представляет окружение, в котором приложение запущено.

Свойства (properties) - это не только содержимое файлов с соответствующим расширением, но и свойства JVM, переменные окружения операционной системы, параметры сервлета (если приложение запущено в соответствующем контейнере) и многое другое. Environment предоставляет к ним ко всем единообразный доступ. Что касается конкретно файлов, ответ зависит от того, как вы хотите эти свойства использовать, как предпочитаете конфигурировать ваше приложение и прочего. Например, местоположение файла свойств можно задать директивой в xml-конфигурации:

<context:property-placeholder location="classpath:application.properties" />

Тогда Spring будет искать файл application.properties в classpath и обеспечит возможность подстановки свойств в xml-конфигурации и аннотациях:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
</bean>

Можно задать расположение файла свойств с помощью аннотации, если вы предпочитаете конфигурацию в коде:

@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig { ... }

Можно даже прямым конфигурированием контекста:

ApplicationContext context = new ClassPathXmlApplicationContext("context.xml");
context
  .getEnvironment()
  .getPropertySources()
  .addFirst(new ResourcePropertySource(new ClassPathResource("application.properties")));

Кроме доступа к свойствам, Environment служит ещё для определение текущего профиля конфигурации и профиля по умолчанию.

READ ALSO
Push notification

Push notification

При отображения множества push notification каждому устанавливается свой Pending Intent, но с разными extraно при нажатии на пуш отображается не свой обработчик

255
Как программно задать обработчик webcal для Firefox?

Как программно задать обработчик webcal для Firefox?

Нужно через программу (язык Java) задать обработчик протокола для FirefoxПричем речь идет не о добавлении нового варианта, а именно о задании того...

273
Проблемы с подключением библиотеки для Java на mac os

Проблемы с подключением библиотеки для Java на mac os

Доброго времени сутокИмеется сайт http://www

294