Идея в проекте Spring подсказывает, что контекст приложения не настроен для этого файла.

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

Сначала я подумал, что это предупреждение, и проигнорировал его, но позже обнаружил, что все классы конфигурации, вызвавшие это сообщение, не были загружены.

Я был очень смущен. В исходном проекте код не менялся, но код был модульным и разделенным. Почему возникла эта проблема?

После поиска в Интернете есть реальный метод: использовать

@Импорт

 Действительно, этот метод осуществим, и все классы конфигурации загружены. Однако у меня более 10 классов конфигурации. У меня болит голова, просто подумав об этом. Что меня еще больше смущает, так это то, почему мой исходный проект не работает. Где это надо настроить?Есть проблема.

 Позже я получил рекомендации от эксперта.

Проблема возникает здесь: из-за субподряда я добавил эту конфигурацию в класс запуска. 

Компонент, используемый для сканирования исходящих пакетов.

Проблема заключается здесь: если здесь включена функция сканирования, аннотация сканирования по умолчанию @SpringBootApplication будет признана недействительной.

По умолчанию сканируется текущий пакет.

Потом у меня просто возникла проблема с пакетом класса запуска.

решение . Удалите аннотацию @ComponentScan(basePackages = "com.xxx.core") в пакете класса запуска и поместите ее в любой класс конфигурации в пакете запуска.

Логика заключается в том, что аннотация @ComponentScan @SpringBootApplication класса запуска сканирует собственный пакет и внедряет классы конфигурации один за другим.При внедрении в определенный класс конфигурации обнаруживается, что существует @ComponentScan, поэтому он внедряет один за другим Это указывает компонент в пакете.

 Идеальное решение.

 


  

Недавно запущенный бесплатный проект блоггера с открытым исходным кодом gitee (торговый центр + приложение + мини-программа + H5), заинтересованные друзья могут узнать о нем.

Торговый центр свежих продуктов kxmall — мини-программа + приложение + общедоступная учетная запись H5: kxmall — торговый центр свежих продуктов + приложение + мини-программа + H5. Он также поддерживает апплет WeChat, H5, приложение Android и приложение Apple. Поддерживает кластерное и автономное развертывание. Его можно использовать в торговых центрах B2C, точках доставки O2O, общественных супермаркетах и ​​свежих продуктах [с поддержкой системы доставки наездниками]. kxmall использует кодировку uniapp. Разработано с использованием Java, среды SpringBoot 2.1.x, структуры уровня персистентности MyBatis-plus, Redis в качестве кэша и MySql в качестве базы данных. В качестве языка разработки используется интерфейсный vuejs. https://gitee.com/zhengkaixing/kxmall

おすすめ

転載: blog.csdn.net/qq_38377190/article/details/131962355