Spring boot provides @ComponentScan to find packages to be scanned.
I am building a library which has @RestControllers
inside with package com
You could create a Spring Boot Starter in the same style as the Spring Provided Starters. They are essentially a jar'd library with a a spring.factories
file pointing to the @Configuration
class to load with some other annotations on there to provide overriding/bean back off (@ConditionalOnMissingBean
) and generally provide their own @ConfigurationProperties
.
Stéphane Nicoll provided an excellent demo of how to build one.
https://github.com/snicoll-demos/hello-service-auto-configuration
It is also documented in the Spring Boot documentation. https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-auto-configuration.html
The library approach would also work but I see no benefit in not making it a starter. Additionally for any library/starter I'd recommend dropping the @ComponentScan
and just defining the beans in a @Configuration
. This will work for sterotypes like @RestController
etc. will function as normal if you create an @Bean
out of it in a configuration.