Должны ли все параметры приложения вводиться из конфигурации Spring? - PullRequest
1 голос
/ 02 апреля 2011

У меня небольшое приложение на основе Spring, и одному из моих классов нужны дополнительные данные конфигурации.Обычно я решаю это через PropertyPlaceholderConfigurer и проходя через настройки.

В моей ситуации целевой класс не настроен в spring.xml, и, возможно, потребуется некоторый рефакторинг для передачи настройки вдоль целевого класса'родительские классы, поэтому я бродил, если можно, чтобы целевой класс (или некоторый связанный класс) читал файл внешних свойств.

Это хороший подход или он нарушает принципы Spring?Или, другими словами: следует ли вводить всю внешнюю конфигурацию из конфигурации приложения (spring.xml) или можно прочитать ее позже в течение жизненного цикла приложения?

Ответы [ 2 ]

3 голосов
/ 02 апреля 2011

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

Поскольку одним из основных преимуществ IoC является простота тестирования, я бы посоветовал вашему классу выбрать его конфигурацию с помощью механизма, который также можно легко протестировать. Другими словами - не используйте статику для извлечения вашей конфигурации.

Так что я бы не стал слишком зацикливаться на вещах, не являющихся «упругими», если вы все еще можете получить некоторые преимущества, которые дает IoC.

0 голосов
/ 02 апреля 2011

Я не знаю, как это вообще делается.В настоящее время я работаю над проектом, в котором мы реализуем Spring для настройки различных компонентов и создания экземпляров Spring.Прежде чем мы начали использовать Spring, нам нужно было убедиться в том порядке, в котором все компоненты будут создаваться основной программой.Кроме того, мы все еще используем app.config для указания другой информации, такой как продолжительность тайм-аута, строки подключения для базы данных и тому подобное.Один статический компонент используется для чтения конфигурации при запуске программы, а другие компоненты могут ссылаться на этот экземпляр для получения необходимой им информации.

Надеюсь, это ответит на ваш вопрос.

...