Я только что разбил бобовый конфигурационный файл Spring в меньшие внешние файлы и использовал директиву "импорта" для включения их в мой XML-файл контекста Тестового приложения Spring.
Но каждый раз, когда я ссылаюсь на один из бобов из импортированных файлов, я получаю предупреждение в Eclipse/STS/Spring XML-редакторе, жалуясь, что "сослался на боб 'нечто', не найденное"
Это, ошибка или это меня? Это является действительно раздражающим, потому что я не хочу отключать предупреждение, все же в моей компании, мы пытаемся устранить все предупреждения.
Меня это тоже раздражало!
Я не уверен, когда была введена эта функция, но в более поздних версиях можно добавить эту поддержку.
Я не понимаю, почему это не отмечено по умолчанию, но это работает как шарм после того, как вы включили это!
Если у вас нет этой опции в вашей версии, я настоятельно рекомендую скачать SpringSource's STS со всеми необходимыми плагинами Eclipse в комплекте.
1) Полезно попытаться устранить все предупреждения, но не ожидайте успеха. 10 предупреждений на проект — это нормально, 500 — нет.
2) это не ваша ошибка, это функция, которая намеренно отсутствует в STS. намеренно, потому что у них нет возможности узнать, каким будет ваш classpath среды выполнения. Конечно, они могут разрешить некоторые операторы импорта, но это было бы непоследовательным поведением. короче говоря, я научился жить с этим предупреждением
Согласно этой теме, это может быть похоже на:
У меня есть (по общему признанию, косметическая) проблема с плагинами Spring IDE для Eclipse, которую я не смог решить. У меня есть ситуация, в которой контекстные файлы A и B импортируются контекстом C. B использует несколько бобов, определенных в A, но поскольку они никогда не используются самостоятельно (только C), это не является проблемой.
Однако валидатор плагина Spring IDE отмечает все ссылки на бобы из A в контекстном файле B как ошибки, говоря что-то вроде "Referenced bean 'foo' not found bar.xml". Очевидно, что это правильное утверждение, но в моем случае это не ошибка.
Есть два способа решения этой проблемы:
- Только конфигурировать контекст C в Spring IDE и позволить другим файлам (A. B) обрабатываться поддержкой импорта. В этом случае предупреждение не появится. Убедитесь, что вы не добавляете A и B как файлы конфигурации в Spring IDE, так как они также будут проверяться отдельно, что вызовет ошибку проверки, которую вы видите.
- Настройте набор конфигураций для A, B и C и не включайте обработку импорта для проекта.