Почему пакет имеет значение для классов контроллеров Spring RESTful - PullRequest
0 голосов
/ 20 июня 2020

У меня запущен RESTful-сервер Spring. Если я добавлю классы контроллеров в пакет com.example.restservice, они заработают. Но если я помещу тот же класс в пакет net .windward.RESTfulEngine.Controllers - они не найдены.

Я нигде не вижу никаких настроек. Что ограничивает место размещения этих контроллеров?

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Это могло бы сработать, если бы вы определили оба шаблона пакетов для сканирования для примера

<context:component-scan base-package="com.example, net.windward" /> 

Или в Java код будет похож на

@ComponentScan({"com.example","net.windward"})

Но если вы захотите чтобы сканировался только один шаблон пакета, вам необходимо сохранить их, чтобы в качестве примера можно было начинать все с com. и добавьте остальные свои пакеты. Сканирование каких компонентов начинается с "com." или все, что вы определили в своей конфигурации, и оно входит во все подкаталоги, но только в подкаталоги, оно не сканирует его. Итак, если вы хотите просканировать com. и net. вам нужно определить их обоих, чтобы Spring мог go в оба их подкаталога. Но подходы сделают свою работу.

1 голос
/ 20 июня 2020

Spring начинает сканирование пакетов из основного пакета, в котором существует ваш класс @SpringBootApplication, и всех его подпакетов. В вашем случае вам необходимо использовать @ ComponentScan для сканирования внешних пакетов.

...