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)這種方式也能實現上面的功能。不過我習慣第一種方式一點,第二這種方式總感覺有點怪怪的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章