Spring Boot引入某个包下部分Bean

  Spring Boot环境下,假如有个第三方包third.jar,内有com.xxx.config目录,在com.xxx.config目录下有3个被@Component注释的类分别是A, B, C,现在我们需要在应用中让A注册到Spring容器中,而B,C不注册进来。有2个方法:

  1. 使用@ComponetScan的Filter,类似这样:@ComponentScan(basePackageClasses = A.class, useDefaultFilters = false, includeFilters = Filter(type = FilterType.ASSIGNABLE_TYPE, classes = A.class)),说明basePackageClasses = A.class表示扫描A.class所在的包,也就是com.xxx.config,useDefaultFilters = false表示被@Service,@Componet,@Configuration这类注释的类不能被扫描注册,includeFilters下的ype = FilterType.ASSIGNABLE_TYPE表示手动指定需要被include类(还有个类似的exclude),classes = A.class表示A被注入到容器。总体来说就是:让om.xxx.config被include到Spring容器。
  2. 上述方式较长,是一种标准方式,还有一种比较简单:通过Spring Boot的@Import(A.class)这种方式也能实现上面的功能。不过我习惯第一种方式一点,第二这种方式总感觉有点怪怪的。
posted @ 2020-01-14 22:23  神一样的存在  阅读(1940)  评论(2编辑  收藏  举报