近年來SpringBoot火的可是一塌糊塗,得益於它零配置,只需要在maven pom.xml引入相應的依賴就能啓動了。這一技術的出現,解救了面向大量xml編程而無法自拔的程序猿們-。-
一、初次使用SpringBoot, 我們都知道要在pom.xml中引入:
<!-- 所有的springboot工程都必須繼承spring-boot-starter-parent -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version>
</parent>
然後在dependencies中引入web開發所用的依賴:
<!--web開發的起步依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
經過以上步驟就可以代替原本SSM框架的大量的xml配置,就可以進行web開發了。這感覺,太爽了。但是在爽的同時,我們有思考過爲什麼只需要這麼少的配置就可以了呢?依賴的版本是如何控制的呢?
二、刨根究底
1.ctrl鍵+鼠標左鍵點擊artifactId
我們就會進來spingboot的父依賴:
在這個xml文件下,我們會看到spring-boot-starter-parent 也有父依賴:spring-boot-dependencies。
接着ctrl+鼠標左鍵:進入中
我們會發現:properties中規定了spring-boot-starter-parent 2.1.9RELEASE 所要用到的其他依賴的版本,我們需要用到某個依賴,只要在pom.xml 的dependency中引入該以來的組名和座標即可,不需要操心版本問題。
2.版本問題解決了,那麼SpringBoot是如何做到只需要引入spring-boot-starter-web就可以進行web開發了呢?
同樣的方法,我們點進去spring-boot-starter-web:看到了spring-boot-starter-web的父依賴:
發現同樣 <properties>標籤下規定了spring-boot-starter-web 可能要用到的其他依賴的版本:
而且在<dependency>標籤下,我們看到了spring-boot-starter-web 依賴了web開發所需要的其他jar包,
如:tomcat
如:freemarker
我們還看到了跟spring-boot-starter-web同名的一個依賴,如下圖:
同樣的方法點進去:我們看到了久違的web和webmvc
由此我們可以看出,我們只需要引入spring-boot-starter-web,springBoot框架就幫我們引入了web和webmvc.
綜上:SpringBoot框架確實幫助我們幹了很多活,我們只需要引入:
<!-- 所有的springboot工程都必須繼承spring-boot-starter-parent -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version>
</parent>
<!--web開發的起步依賴 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
以上兩個依賴,就可以進行web開發啦!知其然,知其所以然!