一、確定環(huán)境
最近公司要上個(gè)新系統(tǒng),指定由我來(lái)帶兩個(gè)人進(jìn)行開發(fā),既然是新項(xiàng)目,那么項(xiàng)目搭建的事就落到我的頭上了。現(xiàn)在都是使用springboot進(jìn)行開發(fā),為此我搭環(huán)境使用的是springboot,具體java環(huán)境如下,
使用springboot的版本是2.3.3.RELEASE。使用maven進(jìn)行項(xiàng)目管理,
總結(jié)下,我使用到的環(huán)境,
JDK:JDK1.8
springboot:2.3.3.RELEASE
maven:3.8.1
好了,使用的環(huán)境就是上面這些。搭建項(xiàng)目框架的第一步就要確認(rèn)好使用的環(huán)境,而且要和團(tuán)隊(duì)成員溝通好項(xiàng)目環(huán)境,大家的環(huán)境一致,避免開發(fā)過程中因?yàn)榄h(huán)境產(chǎn)生問題。確認(rèn)環(huán)境另一個(gè)好處是在部署的時(shí)候,減少開發(fā)和部署環(huán)境不一致。這個(gè)一定要注意生產(chǎn)環(huán)境,務(wù)必開發(fā)和生產(chǎn)使用同一套環(huán)境。
二、確定項(xiàng)目結(jié)構(gòu)
現(xiàn)在后端開發(fā)都是基于springboot的web項(xiàng)目,web項(xiàng)目一般都是使用MVC的模式,所以這里也采用類似的模式。在項(xiàng)目maven結(jié)構(gòu)組成上,采用父子項(xiàng)目,也就是一個(gè)主項(xiàng)目下有多個(gè)子module,分為下面幾個(gè),
p-admin
? ? ?p-web --》負(fù)責(zé)項(xiàng)目啟動(dòng)
? ? ?p-facade? --》控制層,寫controller
? ? ?p-service --》服務(wù)層,具體的業(yè)務(wù)處理
? ? ?p-dao --》持久化層,負(fù)責(zé)和數(shù)據(jù)庫(kù)打交道
? ? ?p-common --》公共層,util類\入?yún)?、出參?/p>
? ? ?p-api --》提供給第三方的接口
大體的項(xiàng)目結(jié)構(gòu)給出來(lái)了,下面看子項(xiàng)目間的依賴關(guān)系哈,
? ? p-web依賴于p-service、p-common
? ? p-service依賴于p-dao、p-common
? ? p-api依賴于p-common
其他的依賴第三方的庫(kù)暫時(shí)不看,下面再說(shuō)。接下來(lái)就可以進(jìn)行實(shí)際操作創(chuàng)建項(xiàng)目了。
三、創(chuàng)建項(xiàng)目
3.1、創(chuàng)建父項(xiàng)目(p-admin)
這里使用maven的父子項(xiàng)目結(jié)構(gòu),父項(xiàng)目是這樣創(chuàng)建的,
在idea中file-->new-->project出現(xiàn)下面的界面,直接next就好,
到下面的界面,填寫上項(xiàng)目名稱p-admin,
最好點(diǎn)finish即可,這樣項(xiàng)目便創(chuàng)建完成,創(chuàng)建完成后,項(xiàng)目文件夾下會(huì)有一些多余的刪除即可,只保留pom.xml。可刪除的有src文件夾等。
緊接著創(chuàng)建子項(xiàng)目。
3.2、創(chuàng)建子項(xiàng)目
在父項(xiàng)目p-admin文件夾下右鍵,new-->Module
顯示的創(chuàng)建界面和父項(xiàng)目是一樣的,
寫上相應(yīng)的子項(xiàng)目名稱p-web、p-facade等即可。
這樣父子項(xiàng)目結(jié)構(gòu)就創(chuàng)建完成了,如下圖
四、配置pom文件
4.1、父pom文件
創(chuàng)建完項(xiàng)目后,有個(gè)很重要的事情,那就是配置pom文件,關(guān)注pom文件總的打包方式、依賴關(guān)系兩個(gè)方面。先看父項(xiàng)目的pom.xml
每創(chuàng)建一個(gè)子項(xiàng)目在父pom中就會(huì)多一個(gè)配置,
在父pom中有多個(gè)子module。
由于使用的springboot的環(huán)境,這里我引入一個(gè)父引用,
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.3.RELEASE</version>
</parent>
引入這個(gè)的好處是可以使用其內(nèi)的依賴,看下spring-boot-starter-parent中的內(nèi)容,可以看到其中還有一個(gè)父引用,
從該引用名稱中知道其中定義了spring-boot的依賴,可以看到定義了很多依賴,
所以,使用了spring-boot-starter-parent的項(xiàng)目中,可以直接使用相關(guān)依賴,不用關(guān)心版本號(hào)。
在p-admin的pom文件中還要定義其子模塊的依賴,以及p-admin使用的但不在spring-boot-starter-parent中定義的依賴,這樣子模塊要使用的時(shí)候也不用關(guān)心版本號(hào)。
4.2、子pom文件
看下p-facade子項(xiàng)目中的pom文件。
五、啟動(dòng)項(xiàng)目
前面說(shuō)到p-web項(xiàng)目用來(lái)啟動(dòng)項(xiàng)目的,看下啟動(dòng)類,
package com.wcj.my;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 啟動(dòng)類
* @date 2023/6/03 17:04
*/
@MapperScan(basePackages = "com.wcj.my.mapper")
@SpringBootApplication()
public class StartSpringbootApplication {
public static void main(String[] args) {
SpringApplication.run(StartSpringbootApplication.class,args);
}
}
這樣就可以了,另外spring-boot有配置文件,application.yml或application.properties文件,這里使用application.yml文件,
server:
port: 8085
現(xiàn)在啟動(dòng)看下,
可以看到啟動(dòng)的線程ID是26352,在8005端口提供web服務(wù),并且還有一個(gè)內(nèi)部的線程池:applicationTaskExecutor。
這樣一個(gè)項(xiàng)目就搭起來(lái)了。
總結(jié)下,搭建一個(gè)項(xiàng)目的一些必備步驟,
1、確定項(xiàng)目環(huán)境;
2、確定項(xiàng)目結(jié)構(gòu)
3、項(xiàng)目搭建及測(cè)試;
在搭項(xiàng)目的過程中,每個(gè)人都會(huì)或多或少遇到一些坑,歡迎關(guān)注下方公眾號(hào)交流。另源碼也可以通過公眾號(hào)獲取。
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-469650.html文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-469650.html
?
到了這里,關(guān)于搭建一個(gè)屬于自己的springboot項(xiàng)目的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!