Конфигурация файлов конфигурации в Spring IDE (STS): должны ли также быть перечислены импортированные файлы XML?

Одна вещь, которую я никогда не понимал после стольких лет использования Spring IDE и Spring Tool Suite (STS). Я использую файлы конфигурации XML. Один файл (скажем, "applicationContext.xml") импортирует другие XML-файлы, используя:

<import resource="classpath:path/to/otherContextFile.xml" />

В моих свойствах проекта Eclipse, под Spring | Поддержка Beans, включена опция "Включить поддержку элемента в файлах конфигурации".

На той же странице свойств проекта, если список файлов конфигурации содержит только applicationContext.xml, STS, тем не менее, может обнаружить содержимое otherContextFile.xml и правильно его проанализировать.

Тем не менее, я вижу, что если STS выполняет автоопределение файлов конфигурации, он всегда добавляет в этот список и другой файл ConContextFile.xml. Но добавление всех импортированных файлов конфигурации в этот список звучит так, будто опция "Включить поддержку элемента в файлах конфигурации" для меня бесполезна. Поскольку мне нравится сохранять настройки проекта в чистоте и порядке, когда это происходит, я обычно удаляю импортированные файлы из этого списка.

Однако время от времени автоматическое сканирование запускается (может быть, при обновлении STS или я не знаю...), и эти файлы добавляются повторно. Это заставляет меня думать, что это может быть лучший выбор, чтобы держать их в списке в любом случае...

Итак, вопрос: что является более правильным, элегантным и эффективным (с точки зрения производительности)? Просто перечислите "корневые" файлы конфигурации или все они (даже импортированные)? И если ответ будет последним, то в чем смысл этой опции "Включить поддержку элемента в файлах конфигурации"?

1 ответ

Основная цель "Включить поддержку <import/> Элемент в файлах конфигурации "это именно то, для чего вы его используете и что вы описываете в начале вашего вопроса. Поэтому я думаю, что вы используете его" правильным "способом (с точки зрения инструментов STS).

Автоматическое сканирование не должно добавлять эти импортированные файлы в список используемых конфигурационных файлов Spring в свойствах проекта. Это делается только для определенных файлов, таких как основные классы приложения Spring Boot или файлы, перечисленные в веб-приложении. В настоящий момент я понятия не имею, почему эти импортированные файлы добавляются в этот список время от времени. Это может быть ошибкой или причиной, потому что механизм находит эти файлы где-то в другом месте.

Я хотел бы взглянуть более подробно, поэтому было бы здорово, если бы вы могли создать небольшой пример приложения, воспроизводящего это поведение, и создать проблему GitHub для этой проблемы по адресу: https://github.com/spring-projects/spring-ide/issues. Пожалуйста, приложите образец проекта и несколько шагов, как воспроизвести проблему.

В дополнение к этому вы можете отключить "автоматическое сканирование" для каждого проекта или для всего вашего рабочего пространства (чтобы быстро избавиться от этого поведения). Вы можете отключить определенные автоматические настройки через свойства проекта (третья вкладка, рядом со списком файлов конфигурации). "Глобальное" отключение можно активировать в общих "Предпочтения -> Весна -> Поддержка Beans", а затем "Отключить автоматическое определение конфигурации".

Надеюсь это поможет!!!

Другие вопросы по тегам