Я использую Xml-конфигурацию для Spring Batch некоторое время и чувствую, что это проще и кратким. Однако в настоящее время люди предлагают использовать javaconfig над xml. Я искал эту тему.SpringBatch - javaconfig vs xml
Этот сайт рассказывает нам, почему javaconfig лучше всего https://blog.codecentric.de/en/2013/06/spring-batch-2-2-javaconfig-part-1-a-comparison-to-xml/
Лучшие причины, чтобы выбрать javaconfig над XML:
- Мы хотим сделать некоторые основные конфигурации в рамках. Люди добавляют зависимости от нашей библиотеки фреймов и импортируют эти конфигурации в соответствии с их потребностями. Если эти конфигурации были написаны в XML, им было бы трудно открыть их до посмотреть, что они делают. На Java нет проблем.
- В XML нет навигации. Это может быть хорошо, если у вас не слишком много XML-файлов, и все они находятся в вашей рабочей области, , потому что тогда вы можете воспользоваться поддержкой Spring IDE. Но базовую библиотеку обычно не следует добавлять в качестве проекта в рабочее пространство . При использовании конфигурации на основе Java вы можете отлично переходить в классы конфигурации каркаса . Я расскажу больше о этой теме в следующем сообщении в блоге.
- В рамках, в которых у вас часто бывают требования пользователь библиотеки должен выполнить, чтобы сделать все, Работа, например, необходимость в DataSource, PlatformTransactionManager и пул потоков. Реализация не имеет значения с точки зрения структуры, им просто нужно, чтобы там было . В XML вы должны написать некоторую документацию для пользователей фреймворка , сообщая им, что им нужно добавить это и это, и этот весенний боб под этим именем в ApplicationContext. В Java вы просто пишете интерфейс, описывающий этот контракт, и люди , используя библиотеку, реализующую этот интерфейс, и добавьте его в качестве класса конфигурации в ApplicationContext. Вот что я сделал с интерфейсом.
Этот сайт рассказывает нам, почему XML лучше всего https://dzone.com/articles/consider-replacing-spring-xml
Лучшие причины, чтобы выбрать XML над javaconfig
- Конфигурация централизована, это не рассеиваются среди всех различных компонентов, так что вы можете иметь хороший обзор бобов и их проводки в одном месте.
- Если вам нужно разделить файлы, нет проблем, Spring позволит вам это сделать. Затем он собирает их во время выполнения через внутренние теги или агрегирование внешних контекстных файлов.
- Только конфигурация XML позволяет осуществлять явную проводку - в отличие от автоподключения. Иногда последний слишком волшебный для моего собственного вкуса. Его кажущаяся простота скрывает реальную сложность: нам нужно не только переключаться между автопилотом по типу и по имени, но, что более важно, стратегия выбора соответствующего компонента среди всех подходящих побегов, но более опытных разработчиков Spring. Профили, похоже, делают это проще, но относительно новы и известны немногим.
- И последнее, но не менее важное: XML полностью ортогонален файлу Java: между ними нет связи, поэтому класс может использоваться в нескольких контекстах с различными конфигурациями.
Я пришел к выводу, что XMLs все еще можно использовать, если вы создаете автономные пакетные задания, и если вы не создаете какие-либо новые структуры за счетом интеграции с Spring Batch.
Любые недостатки xmls, которые я пропускаю?