spring註解之 Import註解的三種使用方式

2021-10-05 17:07:20 字數 2775 閱讀 4053

1、@import只能用在類上,@import通過快速匯入的方式實現把例項加入spring的ioc容器中

2、加入ioc容器的方式有很多種,@import註解就相對很牛皮了,@import註解可以用於匯入第三方包,當然@bean註解也可以,但是@import註解快速匯入的方式更加便捷

3、@import註解有三種用法

@import的三種用法主要包括:

1、直接填class陣列方式

2、importselector方式【重點】

3、importbeandefinitionregistrar方式

2.1、第一種用法:直接填class陣列直接填對應的class陣列,class陣列可以有0到多個。語法如下:

@import()

public class

testdemo

對應的import的bean都將加入到spring容器中,這些在容器中bean名稱是該類的全類名,比如com.yc.類名

2.2、第二種用法:importselector方式【重點】

這種方式的前提就是乙個類要實現importselector介面,假如我要用這種方法,目標物件是myclass這個類,分析具體如下:

建立myclass類並實現importselector介面

public class

myclass

implements

importselector

}

分析實現介面的selectimports方法中的:

需要注意的是selectimports方法可以返回空陣列但是不能返回null,否則會報空指標異常!

以上分析完畢之後,具體用法步驟如下:

第一步:建立myclass類並實現importselector介面,這裡用於演示就新增乙個全類名給其返回值

public class

myclass

implements

importselector ;}}

第二步:編寫testdemo 類,並標註上使用importselector方式的myclass類

@import()

public class

testdemo

}

可以看出,宜春故意挑了個龍套角色@bean註解,若對@bean註解不是很清晰的童鞋可以參考大白話講解spring的@bean註解

第三步:編寫列印容器中的元件測試類

/**

* 列印容器中的元件測試

*/public class

annotationtestdemo }}

第四步:執行結果

2.3、第三種用法:importbeandefinitionregistrar方式

同樣是乙個介面,類似於第二種importselector用法,相似度80%,只不過這種用法比較自定義化註冊,具體如下:

第一步:建立myclass2類並實現importbeandefinitionregistrar介面

public class

myclass2

implements

importbeandefinitionregistrar

}

引數分析:

第二步:編寫**,自定義註冊bean

public class

myclass2

implements

importbeandefinitionregistrar

}

第三步:編寫testdemo 類,並標註上使用importbeandefinitionregistrar方式的myclass2類

@import()

public class

testdemo

}

第四步:執行結果

第一種用法:@import( ):容器會自動註冊這個元件,id預設是全類名第二種用法:importselector:返回需要匯入的元件的全類名陣列,springboot底層用的特別多【重點

第三種用法:importbeandefinitionregistrar:手動註冊bean到容器

以上三種用法方式皆可混合在乙個@import中使用,特別注意第一種和第二種都是以全類名的方式註冊,而第三中可自定義方式。@import註解本身在springboot中用的很多,特別是其中的第二種用法importselector方式在springboot中使用的特別多,尤其要掌握!

Spring註解 Import註解

常用的匯入註解分類 註冊自己寫的類service dao controller可用包掃瞄 元件標註註解 controller service repository component bean 匯入的第三方包裡面的元件 import 快速給容器中匯入乙個元件 1 import 要匯入到容器中的元件 ...

spring常用註解 Import

1.先來看下 import的官方文件解釋 解釋下意思 1.該類主要是為了將元件註冊到容器中 2.註解裡面value值可以有四種型別,通過引入這四種型別的陣列,來註冊進容器,分別為configuration,importselector,importbeandefinitionregistrar or...

Spring 註解之 Import 注入的各種花活

pig4cloud 中涉及的 import 的注入形式。通過不同形式的注入方式,最大程度使得架構簡潔。import匯入乙個元件 來看 enablepigxdynamicroute 這個註解,當我們需要開始動態資料來源時,只需要在main 方法加上此註解即可。target retention rete...