搭建自己的spring boot項(xiàng)目

一、背景

本文章屬于系列文章屏富,背景請(qǐng)前往系列入口文章
本篇介紹如何上手搭建一個(gè)基于spring boot的項(xiàng)目

二驯耻、spring boot

1. spring boot是什么?

spring boot可以快速搭建一個(gè)可配置崔慧、可運(yùn)行的后端web項(xiàng)目拂蝎,從繁雜的xml配置,到基于注解惶室、自動(dòng)掃描温自,很大地 方便了開發(fā)者的工作。(如果有點(diǎn)歷史的人皇钞,應(yīng)該知道web.xml配置controller悼泌、dispatcher的年代,哈哈)

2. 上手

2.1 官網(wǎng)下載

image.png

進(jìn)入官網(wǎng)夹界,按照?qǐng)D片順序馆里,下載基礎(chǔ)代碼。

2.2 運(yùn)行

2.2.1 打開項(xiàng)目

完成上面的步驟后可柿,會(huì)下載一個(gè)包鸠踪,以項(xiàng)目的方式打開(這里我用的是idea開發(fā)工具)
(若打開項(xiàng)目失敗,可以嘗試直接打開根目錄下的build.gradle文件复斥,idea會(huì)自動(dòng)識(shí)別成gradle項(xiàng)目)

2.2.2 點(diǎn)擊運(yùn)行
image.png
2.2.3 運(yùn)行成功
image.png

2.3 添加依賴

將build.gradle修改為:

plugins {
    id 'org.springframework.boot' version '2.3.3.RELEASE'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
//  id "org.flywaydb.flyway" version "6.5.5"
}

group = 'com.mark'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
    mavenCentral()
}

dependencies {
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtime('mysql:mysql-connector-java') //JDBC依賴庫
}

test {
    useJUnitPlatform()
}

其中营密,lombok是一個(gè)插件,jpa 和 mysql 是用來處理數(shù)據(jù)庫連接的永票。
接下來卵贱,我們要連接數(shù)據(jù)庫,希望可以對(duì)數(shù)據(jù)庫進(jìn)行增刪改查侣集,對(duì)外暴露rest接口

2.4 數(shù)據(jù)庫準(zhǔn)備

2.4.1 遇到的錯(cuò)誤

我這里用了mysql键俱,最開始用本地對(duì)mysql,并且設(shè)置了密碼跳過功能(也就是每次登錄mysql世分,只需要給用戶名root编振,不用密碼),導(dǎo)致出現(xiàn)了一下錯(cuò)誤:

Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

具體原因還沒有研究,但是為了簡單的刻意練習(xí)踪央,建議不要設(shè)置成密碼跳過臀玄,而是用docker的方式

2.4.2 docker啟動(dòng)mysql

docker 不是本文重點(diǎn),請(qǐng)自行安裝畅蹂。
需要先安裝docker健无,再拉鏡像,接著運(yùn)行液斜。這里給出 mysql鏡像地址

  • 拉鏡像:docker pull mysql
  • 運(yùn)行:docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=password -d -p 3309:3306 mysql:5.7
  • 進(jìn)入鏡像系統(tǒng):docker exec -it some-mysql bash
  • 在鏡像里面進(jìn)入mysql:mysql累贤,如圖:
    image.png

2.5 數(shù)據(jù)庫連接配置

準(zhǔn)備好數(shù)據(jù)庫后,我們需要把項(xiàng)目和數(shù)據(jù)庫進(jìn)行連接少漆,做CRUD時(shí)臼膏,會(huì)走這個(gè)數(shù)據(jù)庫。

2.5.1 配置src/main/resources/application.properties文件如下:
spring.datasource.url=jdbc:mysql://127.0.0.1:3309/supermarket
spring.datasource.username=root
spring.datasource.password=password

2.6 準(zhǔn)備數(shù)據(jù)庫數(shù)據(jù)

在剛剛docker啟動(dòng)的容器中(mysql>處)示损,執(zhí)行以下命令(這里我們創(chuàng)建了一個(gè)數(shù)據(jù)庫supermarket渗磅,并且新建了item表,這個(gè)表的id是自增的)

CREATE DATABASE `supermarket` /*!40100 DEFAULT CHARACTER SET utf8 */

# 在supermarket中建表
CREATE TABLE `item` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `price` double unsigned NOT NULL DEFAULT '0',
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

# 可以在 item 中自定義兩條數(shù)據(jù)检访,請(qǐng)自行執(zhí)行insert into指令

至此始鱼,所有的準(zhǔn)備工作都已完畢,接下來可以進(jìn)行接口的開發(fā)烛谊。接口的開發(fā)主要是利用注解风响、jpa嘉汰、controller丹禀、repository、entity等鞋怀,具體請(qǐng)自行分析github項(xiàng)目代碼的first分支双泪。

若拷貝完代碼,打開http://localhost:8080/密似,效果如下圖:

image.png

其余item的增刪改查接口(github的代碼可用)焙矛,可供讀者調(diào)試使用(如postman)。


image.png

(完)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末残腌,一起剝皮案震驚了整個(gè)濱河市村斟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抛猫,老刑警劉巖蟆盹,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異闺金,居然都是意外死亡逾滥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門败匹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寨昙,“玉大人讥巡,你說我怎么就攤上這事√蚰模” “怎么了欢顷?”我有些...
    開封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捉蚤。 經(jīng)常有香客問我吱涉,道長,這世上最難降的妖魔是什么外里? 我笑而不...
    開封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任怎爵,我火速辦了婚禮,結(jié)果婚禮上盅蝗,老公的妹妹穿的比我還像新娘鳖链。我一直安慰自己,他們只是感情好墩莫,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開白布芙委。 她就那樣靜靜地躺著,像睡著了一般狂秦。 火紅的嫁衣襯著肌膚如雪灌侣。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天裂问,我揣著相機(jī)與錄音侧啼,去河邊找鬼。 笑死堪簿,一個(gè)胖子當(dāng)著我的面吹牛痊乾,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播椭更,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼哪审,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了虑瀑?” 一聲冷哼從身側(cè)響起湿滓,我...
    開封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舌狗,沒想到半個(gè)月后叽奥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡把夸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年而线,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡膀篮,死狀恐怖嘹狞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情誓竿,我是刑警寧澤磅网,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站筷屡,受9級(jí)特大地震影響涧偷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜毙死,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一燎潮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扼倘,春花似錦确封、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纠拔,卻和暖如春秉剑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背稠诲。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來泰國打工侦鹏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吕粹。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓种柑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親匹耕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344