亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

springboot手寫一個自己的starter源碼

 更新時間:2019年06月07日 09:45:01   投稿:laozhang  
在本篇文章里小編給大家整理了關(guān)于springboot手寫一個自己的starter源碼的全部知識點內(nèi)容,需要的朋友們學習下。

springboot的最強大的就是那些xxxAutoconfiguration,但是這些xxxAutoConfiguration又依賴那些starter,只有導入了這些場景啟動器(starter),我們很多自動配置類才能有用,并且還會新增一些功能,這次就來一起寫個簡單的starter,來看看內(nèi)部到底是什么原理!

腦中大概有個印象:我們要用一個場景(比如web),直接導入下圖所示的依賴,但是在jar包里面去看這個,你會發(fā)現(xiàn)里面只有一些基本的配置文件,什么類都沒有,就能夠想到這個一類就類似一個公司前臺的作用,通過這個公司前臺,能夠聯(lián)系到公司內(nèi)部。

提前準備:必須要有IDEA模塊化創(chuàng)建項目的基本操作,其他的隨意。

溫馨提醒:對于會用模塊的小伙伴,其實這里就是創(chuàng)建一個空項目,里面新建一個maven模塊,一個springboot模塊,springboot坐標丟到maven的pom里面,再刪除一些多余的文件和依賴。

1.創(chuàng)建一個空的項目

  

 

然后就會跳出下圖這個頁面

 

上面相當于前臺創(chuàng)建好了,下面開始創(chuàng)建真正的東西了,繼續(xù)創(chuàng)建模塊

  

兩個模塊創(chuàng)建好了之后,將這兩個模塊聯(lián)系起來(廢話,公司前臺肯定要有和上級的的通話方式?。?/p>

 

導入依賴之后就是這樣的

 

下一步就是在xxxautoconfiguration模塊,刪除一些沒用的東西和依賴,但是一定要保留一個最基本的starter

到這里,基本的準備工作已經(jīng)完成(其實會用模塊式的直接能跳到這里來)

記?。簒xxstarter是前臺,只是起到一個聯(lián)系作用(所以我們基本不配置這個),沒有什么其他功能,但是那個xxxautoconfiguration才是內(nèi)部有實權(quán)的老板

現(xiàn)在我們來做個老板出來,嘿嘿嘿!

下面看我的目錄結(jié)構(gòu)

 從頭到尾看一下這些類里面有什么

第一個:HelloProperties

第二個:HelloWorld(記住,此時這個類和properties類還沒什么關(guān)系,必須要讓第三方傳入properties)

第三個HelloWorldAutoconfiguration

第四個.spring.factories文件

最后一步:把這兩個安裝到maven本地倉庫(記得,先是xxautoconfiguration,然后再starter)

另外一個starter一樣的操作

到此為止,一個簡單的HelloWorid的starter就做出來了,我們只需要在我們的項目中導入那個starter(也就是前臺唯一的作用)的依賴,就可以了,看看我的starter的坐標(還要記住,properties文件配置的@ConfigurationProperties(prefix = "wyq.hello"),這個prefix是可以在我們項目里面配置文件配置屬性的哦~~)

 測試:

file------>new------->project,和以前用springboot一樣,隨便新建一個springboot應用(記住,一定要選擇web模塊,不然自動配置類作用,因為配置了@ConditionalOnWebApplication),導入上圖的依賴

隨便寫個controller測試一下

測試成功

  

到此結(jié)束,是不是覺得starter也就這樣啊,挺好玩的一個東西,而且最重要的是這種設(shè)計的模式有點厲害!通過這樣的設(shè)計,居然能夠?qū)崿F(xiàn)自動配置,果然是學海無涯啊,要不斷的學習別人前輩造就出來的成果,站在巨人的肩膀上學習,我們才能走得更遠??!

相關(guān)文章

  • SpringBoot整合easy-es的詳細過程

    SpringBoot整合easy-es的詳細過程

    本文介紹了EasyES,一個基于Elasticsearch的ORM框架,旨在簡化開發(fā)流程并提高效率,EasyES支持SpringBoot框架,并提供了CRUD操作、批量操作和查詢操作等方法,文章還列舉了使用EasyES時可能遇到的技術(shù)難題及解決方法,感興趣的朋友一起看看吧
    2025-02-02
  • java中如何調(diào)用js

    java中如何調(diào)用js

    Nashorn是Java8中引入的一個新的JavaScript引擎,它允許在JVM上運行JavaScript代碼,并且可以與Java代碼相互調(diào)用,Nashorn遵循JSR233規(guī)范,是一個純Java實現(xiàn)的JavaScript引擎,可以與Java程序無縫集成,提供動態(tài)腳本執(zhí)行和靈活性
    2025-01-01
  • Java使用Redisson分布式鎖實現(xiàn)原理

    Java使用Redisson分布式鎖實現(xiàn)原理

    Redisson分布式鎖 之前的基于注解的鎖有一種鎖是基本redis的分布式鎖,這篇文章主要介紹了Java使用Redisson分布式鎖實現(xiàn)原理,非常具有實用價值,需要的朋友可以參考下
    2018-10-10
  • SpringMVC post請求的處理

    SpringMVC post請求的處理

    今天小編就為大家分享一篇解決SpringMVC接收不到ajaxPOST參數(shù)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-07-07
  • Java內(nèi)省之Introspector解讀

    Java內(nèi)省之Introspector解讀

    這篇文章主要介紹了Java內(nèi)省之Introspector解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 深入理解Java設(shè)計模式之觀察者模式

    深入理解Java設(shè)計模式之觀察者模式

    這篇文章主要介紹了JAVA設(shè)計模式之觀察者模式的的相關(guān)資料,文中示例代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解
    2021-11-11
  • SpringBoot?2.5.5整合輕量級的分布式日志標記追蹤神器TLog的詳細過程

    SpringBoot?2.5.5整合輕量級的分布式日志標記追蹤神器TLog的詳細過程

    分布式追蹤系統(tǒng)是一個最終的解決方案,如果您的公司已經(jīng)上了分布式追蹤系統(tǒng),這篇文章主要介紹了SpringBoot?2.5.5整合輕量級的分布式日志標記追蹤神器TLog,需要的朋友可以參考下
    2022-10-10
  • java 畫pdf用itext調(diào)整表格寬度、自定義各個列寬的方法

    java 畫pdf用itext調(diào)整表格寬度、自定義各個列寬的方法

    這篇文章主要介紹了java 畫pdf用itext調(diào)整表格寬度、自定義各個列寬的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • JavaWeb文件上傳與下載功能解析

    JavaWeb文件上傳與下載功能解析

    這篇文章主要為大家詳細介紹了JavaWeb文件上傳與下載功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 基于SpringBoot制作一個PDF切圖小工具

    基于SpringBoot制作一個PDF切圖小工具

    這篇文章主要為大家詳細介紹了如何基于SpringBoot制作一個PDF切圖小工具,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-01-01

最新評論