Где должна быть размещена конфигурация?
-
27-09-2019 - |
Вопрос
У меня есть приложение, структурированное следующим образом:
- дао
- домен
- основной
- Сервисы
- утилизация
Я сделал класс, который читает конфигурацию приложения из файла XML. Вопрос в том, где он должен быть размещен?
По рефлексу я бы поместил его в утилиты, но утилиты имеют статические методы, а в том, что этот класс использует экземпляр Apache Commons XMLConfiggation. Должен ли я просто адаптировать методы, поэтому этот экземпляр ограничен объемами методов в этом классе?
Решение
Я предполагаю, что предметы являются пакетами, поэтому я пошел с основной упаковка.
- дао
- домен
- основной Содержит приложение и его конфигурационные читатели
- конфигурация
- журнал
- Сервисы
- утилизация
Почему? Конфигурация приложения, будь то в XML или нет, и, основаны ли он на структуре приложений, таких как пружина или нет, является частью его основной функциональности. Загрузка на приложение является основной ответственностью приложения. Все бизнес-функциональность, все блестящие особенности, которые она обеспечивает, реализованы в домене и сервисных слоях.
Вы правы, Utils все о статических или аналогичных инструментах. Поскольку конфигурация приложения очень важно, я бы не объявил его утилитой. Утилита - это то, что можно легко заменять на другую полезность одного типа (например, StringUtil
против. StringUtils
против. IOUtils
И т.д. У них все имеют очень похожие функциональные возможности)
Другие советы
Это зависит от системы сборки и типа приложений, которые вы используете IG Maven, предложил бы разместить Configfiles в SRC / Главная / Ресурсы
В файле войны вы могли бы разместить их в Web-inf или Web-Inf / Config
Согласно вашей структуре проекта, я бы предложил ввести конфигурацию папки или ресурсы, поскольку почти все будут ожидать их там.
Если вы работаете с весной, посмотрите на Заполнители конфигурации. Отказ Вы можете использовать простые файлы свойств Java для своих свойств конфигурации и разместить его на вашем классе (или любое другое место). ALSOU Вы можете создать собственную реализацию для использования другой формы сохранения ваших значений конфигурации (XML, базы данных и т. Д.)
Поскольку конфигурация является скрещенным аспектом, он не отображает исключительно к одному из этих слоев. Поместите файлы конфигурации (XML или свойства) в класс и используйте его через пружину, чтобы настроить бобы.
Для недвижимости на основе данных конфигурации PropertyBaceFolderConfigurer. это хорошее решение.
Я призываю вас взглянуть на весну. Может по-видимому, как у вас в первую очередь, но вы любите это.