Ответ 1
Вам просто нужно создать два класса Config
для двух требуемых аннотаций @ComponentScan
.
Итак, например, у вас будет один класс Config
для вашего пакета foo.bar
:
@Configuration
@ComponentScan(basePackages = {"foo.bar"},
excludeFilters = @ComponentScan.Filter(value = Service.class, type = FilterType.ANNOTATION)
)
public class FooBarConfig {
}
а затем второй Config
класс для вашего пакета foo.baz
:
@Configuration
@ComponentScan(basePackages = {"foo.baz"})
public class FooBazConfig {
}
то при создании экземпляра Spring вы должны сделать следующее:
new AnnotationConfigApplicationContext(FooBarConfig.class, FooBazConfig.class);
Альтернативой является то, что вы можете использовать аннотацию @org.springframework.context.annotation.Import
в первом классе Config
для импорта второго класса Config
. Например, вы можете изменить FooBarConfig
следующим образом:
@Configuration
@ComponentScan(basePackages = {"foo.bar"},
excludeFilters = @ComponentScan.Filter(value = Service.class, type = FilterType.ANNOTATION)
)
@Import(FooBazConfig.class)
public class FooBarConfig {
}
Затем вы просто начнете свой контекст с помощью:
new AnnotationConfigApplicationContext(FooBarConfig.class)