spring.codeconfig против конфигурации xml
Я использую spring.net с конфигурацией xml несколько раз, и я только что увидел, что команда Spring выпустила CodeConfig месяц назад.
Что мне нравится в конфигурации xml, так это то, что если у меня возникла проблема на работающем сервере, я могу легко изменить конфигурацию xml, чтобы включить некоторые конкретные параметры отладки, или отключить определенный компонент, просто изменив конфигурацию xml.
В чем преимущество использования конфигурации кода вместо конфигурации xml, отличной от проверки времени компиляции?
2 ответа
С помощью конфигурации кода возможны следующие преимущества:
- Лучшая поддержка рефакторинга; например, переименование введенного свойства
- Более компактная конфигурация по сравнению с xml
- Разработчики могут использовать код, в котором они чаще бывают дома, чем в XML
Преимущество последнего пункта также состоит в том, что разработчики, плохо знакомые с этой платформой, будут иметь значительно меньшую кривую обучения, чем с конфигурацией xml.
Из документов:
Хотя есть несколько положительных аспектов для выражения метаданных конфигурации в файлах XML, есть также много проблем с этим подходом, включая многословность XML и его сильную зависимость от строковых литералов, которые и склонны к ошибкам ввода и необычно устойчивы к большинству современных инструментов рефакторинга. используется сегодня. Подход CodeConfig устраняет эти проблемы, предоставляя безопасный для типов подход на основе кода для внедрения зависимостей. Он сохраняет метаданные конфигурации внешними по отношению к вашему классу, поэтому ваш класс может быть POCO, без каких-либо аннотаций, связанных с DI.
Просто, чтобы выделить одну вещь, вы можете смешивать и сочетать стили конфигурации. Из класса CodeConfig вы можете ссылаться на файлы конфигурации XML с помощью атрибута [ImportResource] (см. Здесь), а в XML вы можете использовать пространство имен (см. Здесь).
Ура, Марк