Предупреждение Spring / Eclipse «ссылка на bean-компонент не найден» при использовании <import>? - PullRequest
18 голосов
/ 19 мая 2010

Я только что разбил файл конфигурации bean-компонента Spring на более мелкие внешние файлы и использовал директиву import, чтобы включить их в мой XML-файл контекста приложения Spring Test.

Но всякий раз, когда я ссылаюсь на один из bean-компонентов из импортированных файлов, я получаю предупреждение в редакторе Eclipse / STS / Spring XML с жалобой на то, что "указанный bean-компонент 'foo' not found"

Это баг или я? Это действительно раздражает, потому что я не хочу отключать предупреждение, но в моей компании мы стараемся устранить все предупреждения.

Ответы [ 3 ]

23 голосов
/ 24 мая 2010

Меня это тоже очень раздражало!

Я не уверен, когда эта функция была введена, но в более поздних версиях можно добавить эту поддержку.

  1. Щелкните правой кнопкой мыши свой проект в представлении Spring Explorer.
  2. Нажмите на свойства
  3. См. Изображение ниже:

alt text

Я не понимаю, почему он не отмечен по умолчанию, но он работает как шарм после того, как вы его включили!

Если у вас нет этой опции в вашей версии, я настоятельно рекомендую скачать SpringSource STS со всеми необходимыми подключаемыми модулями Eclipse.

6 голосов
/ 19 мая 2010

Согласно этой теме , это может быть похоже на:

У меня есть (по общему признанию) косметическая проблема с плагинами Spring IDE для Eclipse, которую я не смог решить. У меня есть ситуация, когда контекстные файлы A и B оба импортируются контекстом C. B использует несколько bean-компонентов, определенных в A, но, поскольку они никогда не используются независимо (только C), это не проблема.

Однако валидатор плагина Spring IDE помечает все ссылки на bean-компоненты в A в файле контекста B как ошибки, говоря что-то вроде «Ссылочный bean-компонент« foo »not found bar.xml». Очевидно, это правильное утверждение, но в моем случае это не ошибка.

Существует два способа решения этой проблемы:

  1. Сконфигурируйте контекст C только с Spring IDE, и пусть другие файлы (A. B) обрабатываются поддержкой импорта. Это не создаст предупреждение. Убедитесь, что вы не добавляете A и B в качестве конфигурационных файлов в Spring IDE, так как они также будут проверяться автономно, что приводит к ошибке проверки, которую вы видите.
  2. Сконфигурируйте набор настроек для A, B и C и не включайте обработку импорта для проекта.
2 голосов
/ 19 мая 2010

1) Благородно пытаться устранить все предупреждения, но не ожидайте успеха. 10 предупреждений на проект в порядке, 500 - нет.

2) тем не менее, это не ваша ошибка, это функция, которая намеренно отсутствует в STS. намеренно, потому что у них нет возможности узнать, каким будет ваш путь к классу во время выполнения. Конечно, они могут разрешать некоторые операторы импорта, но это будет противоречивым поведением. Короче говоря, я научился жить с этим предупреждением

...