當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
Spring - BeanDefinition的注册顺序 DeffredImportSelector
生活随笔
收集整理的這篇文章主要介紹了
Spring - BeanDefinition的注册顺序 DeffredImportSelector
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- BeanDefinition的注冊順序
- DeffredImportSelector
BeanDefinition的注冊順序
DeffredImportSelector 是Spring Boot 自動裝配原理中不可獲取的一部分, 實現了 延遲 + 分組
DeffredImportSelector
import org.springframework.context.annotation.DeferredImportSelector; import org.springframework.core.type.AnnotationMetadata;import java.util.ArrayList; import java.util.List; import java.util.function.Predicate;/**** 延遲 特性, 分組特性*/ public class MyDeferredImportSelector implements DeferredImportSelector {@Overridepublic String[] selectImports(AnnotationMetadata importingClassMetadata) {return new String[]{"com.artisan.beans.Person"};}@Overridepublic Predicate<String> getExclusionFilter() {return null;}@Overridepublic Class<? extends Group> getImportGroup() {// 這個返回值決定調用DeferredImportSelector.selectImports 如果null// 還是調用Group.selectImportsreturn MyGroup.class;}// 如果getImportGroup返回自定義Group , 會調用自定義Group的process方法// 如果getImportGroup返回 null,會調用DefaultDeferredImportSelectorGroup的process方法,即調用selectImports// 分組利用歸類,同一組的bean只影響本組的順序private static class MyGroupimplements DeferredImportSelector.Group{AnnotationMetadata metadata;@Overridepublic void process(AnnotationMetadata metadata, DeferredImportSelector selector) {this.metadata=metadata;}// 實現 分組 @Overridepublic Iterable<Entry> selectImports() {List<Entry> list=new ArrayList<>();list.add(new Entry(this.metadata,"com.artisan.beans.Person"));return list;}}}總結
以上是生活随笔為你收集整理的Spring - BeanDefinition的注册顺序 DeffredImportSelector的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Boot - 构建数据访
- 下一篇: Spring Boot - 自动装配中的