當前位置:
                    首頁 >
                            前端技术
>                            javascript
>内容正文                
                        
                    javascript
Spring注解@Import详细使用说明
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                Spring注解@Import详细使用说明
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                文章目錄
- 一、@Import解釋
 - 二、@Import有三種使用方法
 - 1、直接填class數組方式
 - 2、實現ImportSelector接口
 - 3、實現ImportBeanDefinitionRegistrar接口
 
寫在前面:
 我是「境里婆娑」。我還是從前那個少年,沒有一絲絲改變,時間只不過是考驗,種在心中信念絲毫未減,眼前這個少年,還是最初那張臉,面前再多艱險不退卻。
 寫博客的目的就是分享給大家一起學習交流,如果您對 Java感興趣,可以關注我,我們一起學習
前言:@Import作用是將某個類或者第三方jar包中類加載到Spring容器中,以便我們能在容器中使用。
一、@Import解釋
- @Import只能用在類上
 - @Import通過快速導入的方式實現把實例加入spring的IOC容器中
 - @Import注解可以用于導入第三方包
 
二、@Import有三種使用方法
@Import的三種用法:
1、直接填class數組方式
直接填對應的class數組,class數組可以有0到多個
@Import({Person.class,Car.class) @Configuration public class MyConfig { }啟動工程運行結果:
 
import的bean都將加入到spring容器中,這些在容器中bean名稱是該類的全類名
2、實現ImportSelector接口
這種方式要實現ImportSelector接口。
創建MyImportSelector并實現ImportSelector接口
public class MyImportSelector implements ImportSelector {@Overridepublic String[] selectImports(AnnotationMetadata importingClassMetadata) {Set<String> annotationTypes = importingClassMetadata.getAnnotationTypes();return new String[]{"com.sl.entity.Car"};} }將此實現類MyImportSelector添加到容器中
@Import({Person.class,MyImportSelector.class}) @Configuration public class MyConfig { }啟動工程運行結果:
 
 實現接口的selectImports方法中需要注意三點
- 返回值: 實際上要導入到容器中的組件全類名
 - 參數: AnnotationMetadata表示當前被@Import注解給標注的所有注解信息
 - 需要注意的是selectImports方法可以返回空數組但是不能返回null,否則會報空指針異常!
 
3、實現ImportBeanDefinitionRegistrar接口
創建MyImportBeanDefinitionRegistrar接口
public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {@Overridepublic void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(Car.class);registry.registerBeanDefinition("car",rootBeanDefinition);} }將此實現類MyImportBeanDefinitionRegistrar添加到容器中
@Import({Person.class,MyImportSelector.class,MyImportBeanDefinitionRegistrar.class}) @Configuration public class MyConfig { }啟動工程運行結果:
 
 registerBeanDefinitions參數解釋:
- annotationMetadata 和之前的ImportSelector參數一樣都是表示當前被@Import注解給標注的所有注解信息
 - registry第二個參數表示用于注冊定義一個bean
 
以上三種用法方式皆可混合在一個@Import中使用,特別注意第一種和第二種都是以全類名的方式注冊,而第三中可自定義方式
總結
以上是生活随笔為你收集整理的Spring注解@Import详细使用说明的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: Java中如何将List拆分为多个小li
 - 下一篇: JDK 监控和故障处理工具总结