2016-12-16 3 views
2

Я хотел бы сохранить список свойств приложения, таких как конечные точки службы, переменные приложения и т. Д. В приложении Spring. Эти свойства должны обновляться динамически (возможно, через веб-страницу системным администратором).Как поддерживать, обновлять свойства приложения динамически весной?

Имеет ли пружина встроенную функцию для выполнения этого требования?

+4

См. Здесь: http://stackoverflow.com/questions/26150527/how-can-i-reload-properties-file-in-spring-4-using-annotations В дополнение к размещенным решениям один комментарий ссылается на следующие встроенная функциональность: http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#dynamic-language-refreshable-beans –

+0

Возможно, вам стоит взглянуть на Spring-Boot admin , http://codecentric.github.io/spring-boot-admin/1.5.3/ –

ответ

0

Я не уверен, но проверьте, можете ли вы использовать @ConfigurationProperties из Spring boot framework.

@ConfigurationProperties(locations = "classpath:application.properties", ignoreUnknownFields = false, prefix = "spring.datasource") 
  1. Вы можете сохранить этот файл в application.properties вы
  2. пути к классам
  3. Изменение свойств в этом файле без повторного применения

Java Experts - Я просто пытаюсь исследовать мой взгляд , Исправления всегда приветствуются.

Edit - Я читал хорошие примеры на @PropertySource here

0

Экстернализирующие свойства, посмотрите here

пружине нагрузки эти свойства, которые могут быть настроены во время выполнения и доступ в приложении по-разному.

0

Я не уверен, что у Spring есть реализация для динамического обновления файла свойств.

Вы можете сделать что-то вроде чтения файла свойств с помощью FileInputStream в объект Properties. Затем вы сможете обновить свойства. Позже вы можете вернуть свойства в тот же файл, используя FileOutputStream.

// reading the existing properties 
FileInputStream in = new FileInputStream("propertiesFile"); 
Properties props = new Properties(); 
props.load(in); 
in.close(); 
// writing back the properties after updation 
FileOutputStream out = new FileOutputStream("propertiesFile"); 
props.setProperty("property", "value"); 
props.store(out, null); 
out.close(); 
0

Добавьте свою реализацию PropertySource вашему Environment.

Предупреждение: Свойства, используемые @ConfigurationProperties и @Value аннотации только для чтения один раз при запуске приложения, поэтому изменение фактических значений свойств во время выполнения не будет иметь никакого эффекта (до перезагрузки).

Смежные вопросы