日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Spring常用注解@Import的三種使用方式,你都了解了嗎?

來源: 責編: 時間:2023-09-22 20:12:32 423觀看
導讀環境:SpringBoot2.6.12三種方法說明直接導入普通數組的方式導入ImportSelector類方式導入ImportBeanDefinitionRegistrar方式被導入的類加入到Spring IOC容器中。直接導入普通數組的方式public class A { @Bean publ

環境:SpringBoot2.6.12JW028資訊網——每日最新資訊28at.com

三種方法說明

  1. 直接導入普通數組的方式
  2. 導入ImportSelector類方式
  3. 導入ImportBeanDefinitionRegistrar方式

被導入的類加入到Spring IOC容器中。JW028資訊網——每日最新資訊28at.com

直接導入普通數組的方式

public class A {  @Bean  public B b() {    return new B() ;  }

在配置類中導入上面的類JW028資訊網——每日最新資訊28at.com

@Import({A.class})@Configurationpublic class ImportConfig {}

這樣A,B都被Spring IOC容器管理了。這里可以導入多個類。JW028資訊網——每日最新資訊28at.com

注意:在Spring4.2之前的版本中被導入的類必須是配置類也就是類上有@Configuration注解,4.2后的版本隨意一個普通類也可以。JW028資訊網——每日最新資訊28at.com

測試JW028資訊網——每日最新資訊28at.com

@Resourceprivate A a ;@Resourceprivate B b ;  @Testpublic void testImport() {  System.out.println("a = " + a) ;  System.out.println("b = " + b) ;}

圖片圖片JW028資訊網——每日最新資訊28at.com

沒問題,能正常的輸出。JW028資訊網——每日最新資訊28at.com

注意,請看下面的示例:JW028資訊網——每日最新資訊28at.com

public class ImportMain {  static class Person{  }    static class A{    @Bean    public Person p() {      Person person = new Person();      System.out.println("p(), " + person) ;      return person ;    }    @Bean    public Date d() {      Person p = p() ;      System.out.println("d(), " + p) ;      return new Date() ;    }  }  @Import({A.class})  @Configuration  static class AppConfig {  }}

在上面的示例中在d()方法中調用p()方法,那這里得到的Person對象和p()方法中定義的是同一個嗎?JW028資訊網——每日最新資訊28at.com

在上面的代碼中一定不是同一個,輸出如下:JW028資訊網——每日最新資訊28at.com

p(), com.pack.main.importaware.ImportMain$Person@18dfcc1p(), com.pack.main.importaware.ImportMain$Person@19f7dcfd(), com.pack.main.importaware.ImportMain$Person@19f7dcf

分別是兩個不同的對象,如何解決呢?我們只需要在A類上添加@Configuration即可,添加了該類后Spring容器首先會對當前的A這個類創建代理,當我們在A這個類中調用其它方法的時候會通過攔截器BeanMethodInterceptor進行攔截;在該攔截器中會根據你調用的方法來確定對應的beanName,然后在容器中查找是否有對應的Bean,如果有則直接返回,所以就確保了在當前類中你不管調用多少次其它@Bean方法都能保證是同一個對象。
JW028資訊網——每日最新資訊28at.com

導入ImportSelector類方式

通過實現ImportSelector接口JW028資訊網——每日最新資訊28at.com

public class E {  @Bean  public G g() {    return new G() ;  }}public class F {}public class G {}

配置類JW028資訊網——每日最新資訊28at.com

@Import({C.class, A.class})@Configurationpublic class ImportConfig {}

實現ImportSelector接口JW028資訊網——每日最新資訊28at.com

public class C implements ImportSelector {  @Override  public String[] selectImports(AnnotationMetadata importingClassMetadata) {    return new String[] {"com.pack.import_annotation.E", "com.pack.import_annotation.F"};  }}

這里的返回值中必須是完整的包名+類名JW028資訊網——每日最新資訊28at.com

注意:這里可以返回空的String數組(length = 0),但是不能返回null。實現ImportSelector該接口的這個本身是不會被注冊為Bean的。JW028資訊網——每日最新資訊28at.com

測試JW028資訊網——每日最新資訊28at.com

@Resourceprivate E e ;@Resourceprivate F f ;@Resourceprivate G g ;  @Testpublic void testImport() {  System.out.println("e = " + e) ;  System.out.println("f = " + f) ;  System.out.println("g = " + g) ;}

圖片圖片JW028資訊網——每日最新資訊28at.com

導入ImportBeanDefinitionRegistrar方式

public class H implements ImportBeanDefinitionRegistrar {  @Override  public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {    GenericBeanDefinition beanDefinition = new GenericBeanDefinition() ;    beanDefinition.setBeanClass(X.class) ;    // 給X這個類配置屬性name值    beanDefinition.getPropertyValues().addPropertyValue("name", "張三") ;    // x 為當前X類在Spring容器中的beanName    registry.registerBeanDefinition("x", beanDefinition) ;  }}

配置類JW028資訊網——每日最新資訊28at.com

public class X {    private String name ;  public String getName() {    return name;  }  public void setName(String name) {    this.name = name;  }  }@Import({C.class, A.class, H.class})@Configurationpublic class ImportConfig {}

測試:JW028資訊網——每日最新資訊28at.com

圖片圖片JW028資訊網——每日最新資訊28at.com

注意:實現ImportBeanDefinitionRegistrar該接口本身這個類是不會被注冊為Bean的。JW028資訊網——每日最新資訊28at.com

完畢!!!JW028資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-11212-0.htmlSpring常用注解@Import的三種使用方式,你都了解了嗎?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: JavaScript怎么模擬 delay、sleep、pause、wait 方法

下一篇: C/C++中如何不使用額外的中間變量交換兩個變量的值

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
一区二区三区欧美在线| 亚洲福利在线视频| 欧美极品在线观看| 欧美激情亚洲另类| 欧美色精品在线视频| 国产精品实拍| 精品成人一区二区三区| 亚洲精品亚洲人成人网| 亚洲一区图片| 久久久www| 欧美激情欧美激情在线五月| 欧美日韩dvd在线观看| 国产精品视频大全| 国语自产偷拍精品视频偷| 亚洲国产一区二区三区在线播| 一本一道久久综合狠狠老精东影业 | 亚洲一区二区三区四区视频 | 欧美日韩久久不卡| 国产欧美在线视频| 亚洲黄色高清| 亚洲免费网站| 黄色国产精品一区二区三区| 91久久综合亚洲鲁鲁五月天| 亚洲欧美激情视频| 欧美不卡一卡二卡免费版| 国产精品毛片a∨一区二区三区| 在线成人欧美| 亚洲欧美中文另类| 欧美国产日产韩国视频| 国产欧美精品日韩精品| 亚洲精品久久久久久一区二区| 欧美影院成人| 欧美视频久久| 亚洲国产精品久久精品怡红院| 亚洲一区二区三区影院| 免费欧美视频| 国产日本欧美一区二区三区在线| 亚洲人成77777在线观看网| 欧美一区二区三区视频| 欧美日韩视频专区在线播放| 亚洲电影网站| 欧美在线看片| 国产精品成人免费| 亚洲人成亚洲人成在线观看| 欧美影院在线播放| 欧美婷婷在线| 亚洲日本黄色| 久久香蕉国产线看观看av| 国产精品女人久久久久久| 亚洲狼人综合| 美女日韩在线中文字幕| 国产一区二区三区免费在线观看| 亚洲视频中文| 欧美精品免费看| 在线观看不卡| 久久精品国产99国产精品澳门| 国产精品啊啊啊| 日韩视频免费大全中文字幕| 欧美a级在线| 激情久久久久久久| 欧美亚洲一区二区三区| 国产精品高清在线观看| 99国产一区| 欧美激情在线有限公司| 亚洲国产精品123| 久久久水蜜桃av免费网站| 国产日韩一区二区三区在线播放| 亚洲午夜一区| 欧美视频二区| 中文在线资源观看网站视频免费不卡| 欧美国产一区在线| 亚洲韩国一区二区三区| 免费不卡中文字幕视频| 在线观看成人小视频| 久久久人人人| 禁久久精品乱码| 久久婷婷综合激情| 国产一级一区二区| 欧美与欧洲交xxxx免费观看| 国产欧美日韩在线| 欧美一区二区啪啪| 国产色产综合产在线视频| 欧美在现视频| 国产伊人精品| 久久在线视频在线| 在线日韩一区二区| 欧美xx视频| 亚洲精品久久久久| 欧美日韩国产精品一区| 日韩一区二区精品视频| 欧美日韩亚洲在线| 亚洲午夜av在线| 国产精品看片你懂得| 亚洲欧美在线免费观看| 国产日本欧美一区二区三区在线| 欧美在线影院| 一区在线视频| 欧美刺激性大交免费视频| 亚洲裸体俱乐部裸体舞表演av| 欧美日韩精品免费看| 国产精品99久久久久久久久| 国产精品久久久久毛片大屁完整版| 亚洲免费视频网站| 国产自产v一区二区三区c| 久久亚洲精品中文字幕冲田杏梨| 亚洲大片一区二区三区| 欧美成人中文字幕在线| 99精品视频免费观看| 国产精品女人久久久久久| 欧美一区二区三区日韩视频| 在线欧美日韩| 欧美日韩激情网| 午夜精品久久久99热福利| 国内精品视频在线播放| 欧美成人综合在线| 在线一区二区日韩| 国产亚洲精品激情久久| 美国十次了思思久久精品导航| 亚洲精品美女在线| 国产精品久久福利| 久久嫩草精品久久久精品| 亚洲三级视频| 国产精品毛片一区二区三区| 久久久久国产免费免费| 亚洲精品在线看| 国产精品美女久久久久久免费| 久久国产精品黑丝| 日韩视频在线观看一区二区| 国产精品呻吟| 麻豆久久婷婷| 亚洲桃花岛网站| 国内精品伊人久久久久av影院| 欧美激情中文字幕一区二区| 欧美一区二区三区免费在线看| 亚洲国产精品成人精品| 国产精品成人在线| 久久视频在线视频| 一区二区三区**美女毛片| 国模精品一区二区三区| 欧美精品自拍偷拍动漫精品| 欧美一区二区视频在线观看| 亚洲精品久久久一区二区三区| 国产美女精品视频免费观看| 欧美成人激情视频免费观看| 午夜精品偷拍| 亚洲日本成人| 国产伦精品一区二区三区照片91 | 红桃视频一区| 欧美视频一区二区| 麻豆av福利av久久av| 亚洲在线观看| 亚洲区中文字幕| 国产一区二区日韩精品| 欧美日韩一区二区三区免费看| 久久久久久穴| 一区二区三区**美女毛片| 亚洲国产91| 国产亚洲精品bt天堂精选| 欧美日韩精品一区| 久久亚洲春色中文字幕久久久| 亚洲一区精品电影| 亚洲精选大片| 伊人色综合久久天天五月婷| 国产精品国产三级国产普通话三级| 免费在线成人av| 久久成人免费电影| 亚洲午夜国产成人av电影男同| 亚洲娇小video精品| 国内视频一区| 国产美女扒开尿口久久久| 欧美日韩视频| 欧美黄网免费在线观看| 久久女同互慰一区二区三区| 西瓜成人精品人成网站| 中文亚洲欧美| 日韩一级在线| 亚洲日产国产精品| 伊人婷婷欧美激情| 国产一区二区三区久久精品| 国产精品成人免费| 欧美日本精品| 欧美大片第1页| 老司机精品视频一区二区三区| 欧美在线观看视频| 欧美亚洲免费电影| 亚洲欧美精品suv| 亚洲图片欧美一区| 99精品久久| 99在线精品视频在线观看| 最新日韩精品| 亚洲黄色一区二区三区| 亚洲国产精品电影| 在线看片一区| 国内精品久久久久久久97牛牛| 国产日韩av一区二区| 国产精品久久久久一区二区| 欧美日韩在线一二三| 欧美精品精品一区| 欧美极品一区| 欧美日韩国产精品| 欧美日韩一区二区三区在线视频| 女人香蕉久久**毛片精品| 免费成人你懂的| 免费一级欧美片在线观看|