I am using Spring 4.16 with Java Annotations, and i want to do something like:
@Configuration
@ComponentScan(basePackages = "com.example.business", includeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = ServiceComponent.class))
@ComponentScan(basePackages = "com.example.business.framework")
public class ServicesBaseConfiguration {
}
Obviusly, it doesn't compile. But i hope you get my point. I want to have multiple ComponentScans with differents packages and filters.
I cannot unify both ComponentsScan because it wouldn't create any component from framework but those which are annotated with ServiceComponent, am i right?
Do you know how could i solve this? Thanks in advance
Create two empty internal classes and put the @ComponentScan
annotation on them:
@Configuration
@Import({ServicesBaseConfiguration.Filtered.class, ServicesBaseConfiguration.Unfiltered.class})
public class ServicesBaseConfiguration {
@Configuration
@ComponentScan(basePackages = "com.example.business", includeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = ServiceComponent.class))
public static class Filtered {}
@Configuration
@ComponentScan(basePackages = "com.example.business.framework")
public static class Unfiltered {}
}
That should work
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With