2016-04-26 2 views
1

Я пишу приложение с Spring MVC, которое я хотел бы настроить с помощью файлов свойств. Я посмотрел в UTIL имен Spring и нашел это:Лучший способ управления свойствами весной

<util:properties id="MyProperties" location="propertiesPath" /> 

с этим, я могу комментировать мое поле классов просто с

@Value("myProperty") 

и имеют свойство просто впрыскивается. Таким образом, очень просто читать ваши свойства. Но когда вы должны их спасти, это не так интуитивно.

Я наткнулся на несколько вопросов о том, как это сделать правильно, и я думаю, что это лучшее, что я хочу сказать: Updating a properties file injected by Spring to include a last run timestamp.

Мой вопрос: почему так сложно сохранить свойства весной? Я делаю это неправильно? На этом этапе я даже задаюсь вопросом, является ли сохранение свойств таким способом хорошей практикой или я должен использовать базу данных.

С Oracle я могу читать:

класс

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

Но весна, кажется, облегчает только один из них. Пожалуйста, просветите меня.

спасибо.

ответ

1

Spring во многом участвует в создании статической, неизменной структуры вашего приложения и не участвует в обработке транзакций или бизнес-логике. Часто он определяет, как обрабатывать транзакции, но обычно не участвует в самой обработке. Мы часто говорим о разделении модели домена и архитектуры - весна о архитектуре.

Написание чего-либо в каком-либо магазине, скажем, свойства файла на диске, является транзакционной логикой (даже если для этого не требуется явная транзакция). Это будет одна из функций конечного пользователя вашей системы, а не часть архитектуры - это будет функция (даже если конечный пользователь в этом случае является sys-admin). У Spring мало поддержки такого типа поведения - так же, как у него мало поддержки для хранения информации о динамических изменениях в контексте приложения.

+0

Мне очень понравился ваш ответ, поскольку он так ясно объяснил роль Sping в веб-приложении и изменил мое мышление. Я бы очень хотел прочитать больше. Спасибо. – Aurasphere

1

Использование таких свойств, как предполагается, предназначено только для чтения. Если вам нужно какое-то управление с ним, вам лучше написать свой собственный сервис с чистыми свойствами обработки java. http://www.mkyong.com/java/java-properties-file-examples/