目前,我正在使用
@ComponentScan
注释设置 bean 配置:
@SpringBootApplication
@ComponentScan
@ComponentScan(basePackages = "net.gencat.transversal.espaidoc.storage.application", includeFilters = {
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = PushDocumentMapper.class),
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = PushDocumentInputPort.class),
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = PullDocumentInputPort.class),
})
@ComponentScan(basePackages = "net.gencat.transversal.espaidoc.storage.infrastructure", includeFilters = {
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = IdentityContextMapper.class),
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = PushDocumentIdentityContextOutputPort.class),
@ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = PullDocumentIdentityContextOutputPort.class)
})
@EnableMongoRepositories(basePackages = "net.gencat.transversal.espaidoc.storage.infrastructure")
@EnableScheduling
public class FrontofficeApplication {
}
我想改变这种方法,以便:
@ComponentScan
注释。目前,我只设置两个用例。您能给我一些使用另一种方法设置 bean 配置的想法吗?
如果我理解正确的话,您不想进行完整的组件扫描,而只想将少量的类添加到上下文中。为了避免太多细粒度的
@ComponentScan
注释和跨所有类的过度扫描过程,我有 2 个想法:
@Import
将预定义的类列表添加到 Spring 上下文中。这些类可以是 @Configuration
类,其本身可以用 @Import
进行注释。或者创建自定义元注释,例如 @ConfigureIdentityContext
,其中包含相关注释。无需进行组件扫描。