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

您的位置:首頁技術(shù)文章
文章詳情頁

SpringBoot如何實現(xiàn)starter原理詳解

瀏覽:34日期:2023-05-13 13:18:55

1、Mybatis 自定義配置的分析

在我們自定義starter之前我們寫了解一下Mybatis 是如何實現(xiàn)starter

在SpringBoot 引入的依賴如下:

<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency>

mybatis的maven 依賴,主要涉及到的內(nèi)容,spring.factories、MybatisAutoConfiguration、MybatisProperties

SpringBoot如何實現(xiàn)starter原理詳解

我們來看一下 META-INF/spring.factories文件,這個文件是以Map 形式存放的。key是EnableAutoConfiguration類的全類名,

value是一個MybatisAutoConfiguration,這就是當項目啟動自動配置的類。

org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration

MybatisAutoConfiguration

SpringBoot如何實現(xiàn)starter原理詳解

@Configuration //標示是一個配置類

@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class}) //表示當SqlSessionFactory,SqlSessionFactoryBean存在這個配置類才生效。

@EnableConfigurationProperties({MybatisProperties.class}):就是把 MybatisProperties加入到 IOC 容器中。

MybatisProperties

SpringBoot如何實現(xiàn)starter原理詳解

對于@ConfigurationProperties注解它的作用就是把全局配置文件中的值綁定到實體類JavaBean上面(將配置文件中的值與MybatisProperties綁定起來),而@EnableConfigurationProperties主要是把以綁定值JavaBean加入到spring容器中。

分析完這些規(guī)則后,我們再來看看mybatis自定義的starter 的項目結(jié)構(gòu),主要是分為兩個項目(一個是空項目(mtbatis-spring-boot-starter),一個是具體的實現(xiàn)自定義配置的項目(mybatis-spring-boot-autoconfigure)),空項目只是引入自定義配置項目的依賴,而實現(xiàn)映入的時候我們只需要映入空項(mtbatis-spring-boot-starter)即可。

到此我們已經(jīng)分析完mybatis 自定義的starter,下面我們自己來實現(xiàn)一個自定義的starter。

2、自定義starter的實現(xiàn)

項目結(jié)構(gòu)展示:

SpringBoot如何實現(xiàn)starter原理詳解

首先我們先定義一個 zfauto-spring-boot-autoconfigure 工程

編寫屬性類:添加 @ConfigurationProperties注解和前綴 zf.auto。之后我們就可以在 application.properties或application.yml 中 使用 zf.auto=指定參數(shù)了,由于篇幅的原因省略setter getter方法,實際是需要的,不然無法注入;

@ConfigurationProperties(prefix = 'zf.auto')public class HelloProperties { private String prefix; private String suffix;}

編寫配置類:加入@Configuration注解,@ConditionalOnWebApplication是web 應(yīng)用配置類才起作用,以及 @EnableConfigurationProperties(HelloProperties.class) 注解,將屬性注入到 IOC 容器中。

@Configuration@ConditionalOnWebApplication@EnableConfigurationProperties(HelloProperties.class)public class HelloServiceAutoConfiguration { @Autowired HelloProperties helloProperties; @Bean public HelloService helloService(){ HelloService helloService=new HelloService(); helloService.setHelloProperties(helloProperties); return helloService; }}

編寫 spring.factories 文件:在resources路徑下面創(chuàng)建META-INF,文件夾,然后創(chuàng)建spring.factories文件

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.zfauto.starter.HelloServiceAutoConfiguration

然后我們在創(chuàng)建一個空項目(zfauto-spring-boot-starter),在這個項目中我們引入zfauto-spring-boot-autoconfigure依賴

<dependency> <groupId>com.zfauto.starter</groupId> <artifactId>zfauto-spring-boot-autoconfigure</artifactId> <version>0.0.1-SNAPSHOT</version></dependency>

HelloService 實現(xiàn)的功能,省略setter,getter的方法(實際需要)

public class HelloService { HelloProperties helloProperties; public String sayHello(String name){ return helloProperties.getPrefix()+ ','+name+','+helloProperties.getSuffix(); }}

最后我們 分別將項目打包,由于zfauto-spring-boot-starter是依賴于zfauto-spring-boot-autoconfigure,所以我們先對zfauto-spring-boot-autoconfigure進行打包,然后通過 mvn install 打到本地倉庫(如何打包見下圖)。

SpringBoot如何實現(xiàn)starter原理詳解

到此我們自定義的類實現(xiàn)。那我們來測試一下,這個和我們引入其他的starter一樣了。

創(chuàng)建項目zfauto-spring-boot-starter-test ,引入自定義starter的依賴。

<dependency> <groupId>com.zfauto.starter</groupId> <artifactId>zfauto-spring-boot-starter</artifactId> <version>0.0.1-SNAPSHOT</version></dependency>

application.properties中的配置如下

zf.auto.prefix=hello

zf.auto.suffix=123

具體的測試類

@RestControllerpublic class HelloController { @Autowired HelloService helloService; @RequestMapping('/sayHello') public String sayHello(){ return helloService.sayHello('小福子'); }}

項目訪問路徑:http://localhost:8080/sayHello

SpringBoot如何實現(xiàn)starter原理詳解

好了 ,本文就說到這里,本文相關(guān)案例我已經(jīng)上傳到 碼云 ,小伙伴們可以自行下載:https://gitee.com/xiaofuzi123/springboot-learning-example

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
香蕉国产精品| 你懂的国产精品| 欧美91在线| 国产精品激情| 国产欧美日韩亚洲一区二区三区| 日本高清久久| 久久精品99久久久| 国产精品丝袜在线播放| 国产欧美激情| 久久av中文| 高清久久一区| 欧美日韩精品免费观看视欧美高清免费大片| 成人国产精品久久| 日本不良网站在线观看| 日韩毛片视频| 91精品推荐| 伊人久久婷婷| 国产欧美日韩在线观看视频| 免费日韩一区二区三区| 欧美国产小视频| 日韩三区在线| 日韩中文字幕亚洲一区二区va在线 | 黄色网一区二区| 91亚洲国产成人久久精品| 日本美女一区| 久久男女视频| 亚洲欧美日韩精品一区二区| 青青草91久久久久久久久| 国际精品欧美精品| 婷婷激情久久| 亚洲精品国产精品粉嫩| 久久爱www成人| 亚洲性色av| 一区二区国产在线| 久久只有精品| 伊人精品一区| 日韩av中文字幕一区二区三区| 毛片不卡一区二区| 激情久久久久久久| 日本一区二区中文字幕| 牛牛精品成人免费视频| 亚洲精品一级二级| 在线观看视频免费一区二区三区| 国产精品jk白丝蜜臀av小说| 久久五月天小说| 欧美中文一区| 亚洲成人av观看| 日韩av三区| 三上悠亚国产精品一区二区三区| 日韩中文字幕1| 国精品产品一区| 日韩午夜高潮| 精品亚洲a∨一区二区三区18| 不卡中文一二三区| 国产精品17p| 亚洲性视频h| 国产精品一区二区免费福利视频| 久久久夜夜夜| 国产精品巨作av| 亚洲欧美日本日韩| 91亚洲人成网污www| 亚洲精品激情| 久久精品一区二区不卡| 欧美亚洲色图校园春色| 激情综合亚洲| 国产精品一国产精品k频道56| 亚洲成人免费| 国产一区二区三区天码| 视频国产精品| 免费观看不卡av| 国产欧美综合一区二区三区| 一区福利视频| 日韩精品dvd| 久久国产欧美日韩精品| 亚洲精品一区二区妖精| 久久亚洲黄色| 中文字幕av一区二区三区四区| 国产精品蜜芽在线观看| 日本亚洲视频在线| 亚洲午夜久久久久久尤物| 国产精品4hu.www| 一区二区精品| 亚洲激情黄色| 亚洲精品永久免费视频| 国产精品任我爽爆在线播放| 亚洲tv在线| 日韩午夜高潮| 欧美不卡高清一区二区三区| 精品久久不卡| 国产剧情一区| 亚洲三级毛片| 亚洲永久字幕| 亚洲午夜在线| 成人精品天堂一区二区三区| 麻豆91精品视频| 国产精品一级在线观看| 日本精品另类| 亚洲精品少妇| 一区二区电影| 爽爽淫人综合网网站| 欧美不卡高清一区二区三区| 国产66精品| 国产在视频一区二区三区吞精| 国产区精品区| 国产视频网站一区二区三区| 亚洲尤物av| 天堂va蜜桃一区二区三区| 99久精品视频在线观看视频| 超级白嫩亚洲国产第一| 欧美激情国产在线| 成人在线超碰| 精品国产aⅴ| 国产精久久久| 国产欧美一区二区色老头| 日本不卡高清视频| 亚洲一区欧美| 亚洲综合婷婷| 亚洲免费专区| 日韩区欧美区| 91麻豆精品激情在线观看最新 | 高清在线一区| 久久影院午夜精品| 国产高清不卡| 日本精品影院| 国产精品av久久久久久麻豆网| 亚洲不卡系列| 国产二区精品| 国产主播一区| 欧美在线网站| 美女国产精品| 伊人国产精品| 日韩精品久久理论片| 日韩二区在线观看| 国产亚洲一区| 免费在线亚洲欧美| 国产不卡精品| 欧美freesex黑人又粗又大| 欧美午夜精彩| 美女被久久久| **爰片久久毛片| 免费一级欧美片在线观看网站 | 国产成人精选| 亚洲精品在线影院| 黄色日韩在线| 综合五月婷婷| 国产伦精品一区二区三区在线播放 | 视频在线观看国产精品| 国产精品7m凸凹视频分类| 亚洲一区二区三区久久久| 91精品日本| 精品国产美女a久久9999| 亚洲播播91| 国产精品毛片在线| 欧美天堂一区| 91视频一区| 国产亚洲精品久久久久婷婷瑜伽| 亚洲精品免费观看| 精品一区二区三区四区五区| 欧美成a人免费观看久久| 免费久久99精品国产自在现线| 日本aⅴ亚洲精品中文乱码| 精品一区二区三区视频在线播放 | 91精品国产自产在线丝袜啪| 久久久免费人体| 日韩成人午夜精品| 成人一区而且| 美女国产一区| 国产精品大片| 免费精品国产的网站免费观看| 免费视频最近日韩| 久久亚洲精品中文字幕| 亚洲h色精品| 亚洲97av| 在线亚洲人成| 一区二区国产在线| 国产不卡精品在线| 亚洲欧美激情诱惑| 国产激情综合| 九一成人免费视频| 国产精品综合| 欧美精品一区二区三区精品| 911精品国产| 一区二区三区四区在线看| 久久国产欧美日韩精品| 国产一区日韩一区| 国产日韩欧美三级| 午夜欧美精品久久久久久久| 国产情侣久久| 五月婷婷六月综合| 国产精品红桃| 天堂va蜜桃一区二区三区| 超碰99在线| 日韩va亚洲va欧美va久久| 久久国产电影| 国产高清精品二区| 另类亚洲自拍| 成人精品天堂一区二区三区| 国产欧美69| 亚洲深深色噜噜狠狠爱网站| 四虎884aa成人精品最新|