Spring boot выполнит сканирование компонента из пакета класса, помеченного @SpringBootApplication
.Компонент scannign означает, что он рекурсивно просматривает классы в этом пакете, анализирует аннотации и подключает все, что распознает.Это может включать контроллеры, простые переменные с аннотациями @Value
, члены с @Autowired
и множество других вещей.
Вы можете перейти к источнику для аннотации @SpringBootApplication
и увидеть, что он расширяетсяко многим другим аннотациям, @ComponentScan
является одним из них.
Если все ваши модули находятся в пакете подиерархии, то они все равно будут сканироваться должным образом.Тем не менее, часто субмодули находятся в несколько иной иерархии пакетов.В этом случае вы можете явно указать @ComponentScan()
в своем коде, а внутри ()
вы можете перечислить базовые пакеты для сканирования компонентов.
Независимо от того, является ли его подмодулем, не имеет большого значенияс этой точки зрения;Это так же, как сканирование классов в любой другой библиотеке, которую вы включаете.
Общие советы
Кроме того, только FYI - многомодульные проекты могут быть немного сложными для управления (говоря из многочисленных отдельных опытов).Они могут быть очень хорошими, если использовать их правильно.Если вы новичок в Maven, возможно, будет разумнее оставить отдельные четко определенные проекты с надлежащим циклом выпуска и просто импортировать их как обычные зависимости.
Так что я не за или противих, но только убедитесь, что вы понимаете их хорошо, входя :):