日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring @Import注解的使用

瀏覽:38日期:2023-07-15 08:39:43
目錄認識@Import注解搭建項目結構用于測試@Import用法最佳搭檔 - @Import通用形式總結認識@Import注解

先看一下源碼

@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Import {/** * {@link Configuration}, {@link ImportSelector}, {@link ImportBeanDefinitionRegistrar} * or regular component classes to import. */Class<?>[] value();}

@Import表示要導入的一個或多個@Configuration類

看注釋value通常是一個普通的組件,Configuration,ImportSelector,ImportBeanDefinitionRegistrar。

搭建項目結構用于測試 先創建一個maven工程加入依賴

<dependencies> <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.18</version> </dependency> <dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.3.24.RELEASE</version> </dependency></dependencies>

編寫測試代碼Tom.java

@Datapublic class Tom { private String color; private Integer age;}

AppConfig.java

@Configurationpublic class AppConfig {}

App.java

public class App { public static void main(String[] args) {// 創建容器AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);// 獲取beanTom tom = context.getBean(Tom.class);System.out.println(tom); }}@Import用法

第一種普通組件@Import({ 要導入的容器中的組件 } )

CustomConfiguration.java

@Configurationpublic class CustomConfiguration { @Bean public Tom tom() {Tom tom = new Tom();tom.setAge(11);tom.setColor('紅色');return tom; }}

將AppConfig.java加上@Import({ CustomConfiguration.class })

@Import({ CustomConfiguration.class })@Configurationpublic class AppConfig {}

這個時候運行App已經可以獲取到Tom

第二種ImportSelectorCustomSelector.java

public class CustomSelector implements ImportSelector { @Override public String[] selectImports(AnnotationMetadata importingClassMetadata) {return new String[] { 'com.moli.pojo.Tom' }; }}

將AppConfig.java加上@Import({ CustomRegistrar.class })

@Import({ CustomRegistrar.class })@Configurationpublic class AppConfig {}

這個時候運行App已經可以獲取到Tom

第三種ImportBeanDefinitionRegistrarCustomRegistrar.java

public class CustomRegistrar implements ImportBeanDefinitionRegistrar { @Override public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(Tom.class);builder.setScope(BeanDefinition.SCOPE_SINGLETON);builder.addPropertyValue('color', '灰色');builder.addPropertyValue('age', '12');registry.registerBeanDefinition('tom', builder.getBeanDefinition()); }}

將AppConfig.java加上@Import({ CustomSelector.class })

@Import({ CustomSelector.class })@Configurationpublic class AppConfig {}

這個時候運行App已經可以獲取到Tom

最佳搭檔 - @Import通用形式

在開源軟件中大部分@Import中是伴隨著一個@EnableXXX使用的

@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import({ CustomRegistrar.class })public @interface EnableTom {}

將AppConfig.java加上@EnableTom

@EnableTom@Configurationpublic class AppConfig {}

這樣看起來,是不是有那味了。

其實SpringBoot的自動配置就是@Import的一個應用

@SuppressWarnings('deprecation')@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@AutoConfigurationPackage@Import(EnableAutoConfigurationImportSelector.class)public @interface EnableAutoConfiguration { ...}總結

直白一點使用@Import注解可以快速把實例加入Spring的IOC容器中

其實這三種用法也算是一種用法,就是導入一個類到容器,容器根據類的注解類型等信息對不同類進行不同處理;

方法一:導入一個Configuration組件,組件創建了一個Tom類的Bean;

方法二:CustomSelector返回的類的全限定類名,實際上要導入到容器中的組件全類名;

方法三:ImportBeanDefinitionRegistrar類似于第二種ImportSelector用法,只不過這種用法能自定義化注冊,往容器內注入一個BeanDefinition,然后BeanDeiniton在容器內轉為一個實例bean;

以上就是Spring @Import注解的使用的詳細內容,更多關于Spring @Import注解的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
在线观看免费一区二区| 日本成人在线视频网站| 国产精品久久久久9999高清| 日韩精品成人| 国产精品伊人| a国产在线视频| 欧美福利在线| 一区二区亚洲视频| 欧美影院精品| 精品久久久网| 99视频精品全国免费| 亚洲一区二区网站| 日韩激情一二三区| 国产探花一区在线观看| 精品一区二区三区免费看 | 成人av动漫在线观看| 亚洲激情中文| 视频一区日韩精品| 美女高潮久久久| 久久精品电影| 亚洲三级毛片| 国产一区二区三区四区五区 | 国产一区二区三区日韩精品| 国产美女高潮在线观看| 国产综合亚洲精品一区二| 蜜臀91精品一区二区三区| 欧美在线看片| 午夜久久中文| 亚洲天堂日韩在线| 国产一区二区视频在线看| av不卡在线| 国产精品成人3p一区二区三区| 成人国产综合| 亚洲一区二区三区高清| 久久亚洲道色| 美女91精品| 国产一区二区三区日韩精品| 亚洲欧美视频| 久久免费视频66| 国产精品呻吟| 国产拍在线视频| 蜜臀av一区二区三区| 国产aⅴ精品一区二区三区久久| 午夜久久黄色| 久久99高清| 蜜桃视频第一区免费观看| 国产一区二区三区四区大秀| 石原莉奈在线亚洲二区| 欧美xxxx中国| 97精品国产99久久久久久免费| 成人看片网站| 国产精品一区二区三区美女| 欧美a级一区| 国产精品对白| 三级在线观看一区二区| 亚洲风情在线资源| 国产午夜久久av| 夜夜嗨一区二区| 黄色欧美在线| 日韩精品成人| 一区久久精品| 成人污污视频| 国产欧美丝祙| 在线观看亚洲精品福利片| 中文字幕成在线观看| 国产亚洲精品美女久久久久久久久久| 欧美日韩四区| sm捆绑调教国产免费网站在线观看| 四虎精品永久免费| 亚洲午夜av| 精品久久久网| 国产精品乱战久久久| 亚洲午夜久久| 中日韩男男gay无套| 欧美一区久久久| 国产精品三级| 日韩美女国产精品| 日韩中文字幕一区二区三区| 国内精品福利| 一区二区小说| 久久国产电影| 免费高潮视频95在线观看网站| 精品理论电影在线| 老鸭窝一区二区久久精品| 综合激情网...| 免费日韩视频| 99在线|亚洲一区二区| 欧美日韩在线观看视频小说| 国产成人免费视频网站视频社区| 国产情侣久久| 国产日韩在线观看视频| 少妇精品久久久| 亚洲精品视频一二三区| 视频一区免费在线观看| 久久国产高清| 视频一区二区中文字幕| 在线观看视频免费一区二区三区| 国产一区成人| 国产亚洲综合精品| 激情视频一区二区三区| 激情婷婷久久| 日韩午夜av| 美女日韩在线中文字幕| 日韩中文字幕不卡| 日韩一区二区三区精品| 欧美中文一区| 精品视频自拍| 日韩欧美午夜| 国户精品久久久久久久久久久不卡 | 亚洲成人免费| 国内精品99| 国产亚洲毛片| 日韩激情中文字幕| 久久爱www.| 福利欧美精品在线| а√天堂8资源在线| 日韩在线视频精品| 午夜日韩av| 日韩精品一级二级| 奇米777国产一区国产二区| 麻豆国产91在线播放| 成人啊v在线| 91久久中文| 亚洲精品欧美| 久久久久久亚洲精品美女| 色爱综合网欧美| 女人天堂亚洲aⅴ在线观看| 蜜臀av国产精品久久久久 | 日韩高清一区在线| 国产精品久久久久9999高清| 日本а中文在线天堂| 亚洲国产一区二区在线观看| 亚洲精品欧洲| 麻豆网站免费在线观看| 国产亚洲午夜| 麻豆高清免费国产一区| 欧美1级日本1级| 91成人精品观看| 日韩欧美综合| 日韩中文欧美在线| 国产精品一区三区在线观看| 日韩精品免费一区二区三区| 五月国产精品| 亚洲www免费| 日韩成人午夜精品| 久久久久久免费视频| 日韩高清电影一区| 日韩电影免费网址| 五月亚洲婷婷 | 国产精品2023| 亚洲高清久久| 欧美视频二区| 亚洲欧美一区在线| 国产精品99一区二区| 国产精品美女久久久久久不卡| 韩日一区二区三区| 国产精品欧美一区二区三区不卡| 亚洲视频综合| 久久亚洲人体| 首页亚洲欧美制服丝腿| se01亚洲视频 | 成人在线黄色| 亚洲久久视频| 秋霞国产精品| 久久成人av| 亚洲久久一区| 欧美另类综合| 成年男女免费视频网站不卡| 香蕉久久久久久| 99视频精品全国免费| 六月丁香综合在线视频| 婷婷亚洲精品| 午夜精品影院| 成人日韩精品| 麻豆久久久久久| 亚洲香蕉久久| 天堂网在线观看国产精品| 国产精品试看| 欧美1区2区3区| 欧洲精品一区二区三区| 里番精品3d一二三区| 欧美日韩99| 综合亚洲视频| 久久亚洲视频| 999国产精品永久免费视频app| 国产高清日韩| 欧美欧美黄在线二区| 亚洲在线网站| 欧美大黑bbbbbbbbb在线| 日韩欧美一区二区三区免费看| 卡一卡二国产精品| 国产精品亚洲欧美| 国产调教精品| 日韩av不卡一区二区| 亚洲乱亚洲高清| 西西人体一区二区| 亚洲一区亚洲| 六月婷婷一区| 首页国产欧美久久| 在线亚洲成人|