springboot的依賴

列位看官大家好拥知,今天我聊一聊springboot的依賴,廢話不多說碎赢,開始低剔!
跟之使用maven一樣,我們想要依賴誰(shuí),就在pom.xml中申明一下襟齿,maven自動(dòng)會(huì)幫我們搞定姻锁,
比如我們想用redis,就會(huì)這樣寫

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

比如想使用mongodb猜欺,就會(huì)這樣寫

<dependency>
   <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

再比如我們是個(gè)web工程位隶,我們就會(huì)這樣寫

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

不難發(fā)現(xiàn),他們有一個(gè)共同的特點(diǎn)都是以spring-boot-starter開始的开皿!其實(shí)呀spring-boot-starter 就是springboot的場(chǎng)景啟動(dòng)器涧黄,它的作用是幫我們導(dǎo)入某個(gè)模塊正常運(yùn)行的所依賴的組件,我們以spring-boot-starter-web為例副瀑,點(diǎn)進(jìn)去看看它干了什么

 <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <version>2.0.1.RELEASE</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-json</artifactId>
      <version>2.0.1.RELEASE</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <version>2.0.1.RELEASE</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.hibernate.validator</groupId>
      <artifactId>hibernate-validator</artifactId>
      <version>6.0.9.Final</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.0.5.RELEASE</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.0.5.RELEASE</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

從源碼中得出弓熏,這里導(dǎo)入了web模塊正常運(yùn)行所依賴的組件tomcat,hibernate-validator,jackson,spring-web,spring-webmvc等等,其實(shí)Spring Boot將所有的功能場(chǎng)景都抽取出來糠睡,做成一個(gè)個(gè)的starter(啟動(dòng)器)挽鞠,只需要在項(xiàng)目里面引入這些starter 相關(guān)場(chǎng)景的所有依賴都會(huì)導(dǎo)入進(jìn)來了。
啟動(dòng)器了解過后狈孔,大家是否還有一個(gè)疑惑呢信认,就是我們?cè)趐om.xml文件中導(dǎo)入依賴的時(shí)候,對(duì)比之前好像少了一個(gè)<version>標(biāo)簽均抽,這是怎么回事呢嫁赏,我們繼續(xù)走著...
其實(shí)啊在springboot使用的時(shí)候,我們必然會(huì)依賴一個(gè)父項(xiàng)目(spring-boot-starter-parent)油挥,在pom.xml文件中是這樣存在的

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/>
    </parent>

點(diǎn)進(jìn)父項(xiàng)目潦蝇,我們發(fā)現(xiàn),父項(xiàng)目也有一個(gè)依賴的父工程(spring-boot-dependencies)深寥,我們繼續(xù)點(diǎn)進(jìn)去...

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath>../../spring-boot-dependencies</relativePath>
    </parent>

這時(shí)候攘乒,我們會(huì)發(fā)現(xiàn)有這樣一個(gè)標(biāo)簽<properties>,里面包含了好多還多的條目惋鹅,因?yàn)閷?shí)在是太長(zhǎng)太長(zhǎng)太長(zhǎng)太長(zhǎng)啦则酝,這里我就粘貼一部分給大家看下

<properties>
    <log4j2.version>2.10.0</log4j2.version>
    <mongodb.version>3.6.3</mongodb.version>
    <mysql.version>5.1.46</mysql.version>
    <quartz.version>2.3.0</quartz.version>
    <rabbit-amqp-client.version>5.1.2</rabbit-amqp-client.version>
    <spring-amqp.version>2.0.3.RELEASE</spring-amqp.version>
    <spring-batch.version>4.0.1.RELEASE</spring-batch.version>
    <spring-cloud-connectors.version>2.0.1.RELEASE</spring-cloud-connectors.version>
    <spring-data-releasetrain.version>Kay-SR6</spring-data-releasetrain.version>
    <spring-hateoas.version>0.24.0.RELEASE</spring-hateoas.version>
    <spring-integration.version>5.0.4.RELEASE</spring-integration.version>
    <spring-kafka.version>2.1.5.RELEASE</spring-kafka.version>
    <sqlite-jdbc.version>3.21.0.1</sqlite-jdbc.version>
    <xml-maven-plugin.version>1.0.1</xml-maven-plugin.version>
    <xmlunit2.version>2.5.1</xmlunit2.version>
    此處省略n多個(gè)...
</properties>

到這里大家也看出來了,長(zhǎng)歸長(zhǎng)闰集,但其中的規(guī)律不難發(fā)現(xiàn)沽讹,里面所有的條目無(wú)一例外都包含一個(gè)關(guān)鍵字“version”,沒錯(cuò)武鲁,我們的依賴的組件不需要寫版本號(hào)就是因?yàn)樗陌姹咎?hào)springboot會(huì)從這里去人邸!(沒有在dependencies里面管理的依賴自然需要聲明版本號(hào))

總結(jié)一下:
1.spring-boot-starter Spring Boot場(chǎng)景啟動(dòng)器沐鼠,為模塊正常運(yùn)行導(dǎo)入所依賴的組件
2.父項(xiàng)目 Spring Boot的版本仲裁中心

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末挚瘟,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刽沾,老刑警劉巖本慕,帶你破解...
    沈念sama閱讀 223,126評(píng)論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異侧漓,居然都是意外死亡锅尘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門布蔗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來藤违,“玉大人,你說我怎么就攤上這事纵揍《倨梗” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵泽谨,是天一觀的道長(zhǎng)璧榄。 經(jīng)常有香客問我,道長(zhǎng)吧雹,這世上最難降的妖魔是什么骨杂? 我笑而不...
    開封第一講書人閱讀 60,294評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮雄卷,結(jié)果婚禮上搓蚪,老公的妹妹穿的比我還像新娘。我一直安慰自己丁鹉,他們只是感情好妒潭,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著揣钦,像睡著了一般雳灾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拂盯,一...
    開封第一講書人閱讀 52,874評(píng)論 1 314
  • 那天佑女,我揣著相機(jī)與錄音记靡,去河邊找鬼谈竿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛摸吠,可吹牛的內(nèi)容都是我干的空凸。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼寸痢,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼呀洲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,249評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤道逗,失蹤者是張志新(化名)和其女友劉穎兵罢,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體滓窍,經(jīng)...
    沈念sama閱讀 46,760評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卖词,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吏夯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片此蜈。...
    茶點(diǎn)故事閱讀 40,973評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖噪生,靈堂內(nèi)的尸體忽然破棺而出裆赵,到底是詐尸還是另有隱情,我是刑警寧澤跺嗽,帶...
    沈念sama閱讀 36,631評(píng)論 5 351
  • 正文 年R本政府宣布战授,位于F島的核電站,受9級(jí)特大地震影響桨嫁,放射性物質(zhì)發(fā)生泄漏陈醒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評(píng)論 3 336
  • 文/蒙蒙 一瞧甩、第九天 我趴在偏房一處隱蔽的房頂上張望钉跷。 院中可真熱鬧,春花似錦肚逸、人聲如沸爷辙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)膝晾。三九已至,卻和暖如春务冕,著一層夾襖步出監(jiān)牢的瞬間血当,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評(píng)論 1 275
  • 我被黑心中介騙來泰國(guó)打工禀忆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留臊旭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,431評(píng)論 3 379
  • 正文 我出身青樓箩退,卻偏偏與公主長(zhǎng)得像离熏,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子戴涝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容