java - Spring 4 中有多个@ComponentScan?

标签 java spring annotations spring-4

我正在使用带有 Java 注释的 Spring 4.16,我想做类似的事情:

@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 {

}

很明显,它无法编译。但我希望你明白我的意思。我想拥有多个具有不同包和过滤器的 ComponentScan。

我不能统一两个 ComponentsScan,因为它不会从框架创建任何组件,而是创建那些用 ServiceComponent 注释的组件,对吗?

你知道我怎么解决这个问题吗?提前致谢

最佳答案

创建两个空的内部类并在它们上面放置@ComponentScan注解:

@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 {}

}

这应该行得通

关于java - Spring 4 中有多个@ComponentScan?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30970748/

相关文章:

java - Spring Hibernate - NullPointerException SessionFactory

java - 如何爬上 TypeMirror 对象的层次结构树?

ios - 如何获取录音针的坐标以计算用户位置和针之间的距离

java - JVM 如何读取系统属性?

spring - 您可以在 @PreAuthorize 中使用 SpEL 引用实例属性吗?

java - 字符串格式不正确

java - 在 MySQL 集群上使用 JPA/Hibernate 检查外键约束

java - 删除子类中的注释?

java - FOP,在 pdf 生成上获得稳定的性能

Java - 日语文件名乱码