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)這種方式也能實現上面的功能。不過我習慣第一種方式一點,第二這種方式總感覺有點怪怪的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM