您好,登錄后才能下訂單哦!
springboot開發(fā)單體web shop的前言介紹和環(huán)境搭建方法,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問題。
springboot 本身是為了做服務(wù)化用的,我們?yōu)槭裁匆雌涞朗褂盟鼇?lái)開發(fā)一份單體web應(yīng)用呢? 在我們現(xiàn)實(shí)的開發(fā)工作中,還有大量的業(yè)務(wù)系統(tǒng)使用的是單體應(yīng)用,特別是對(duì)于中小型團(tuán)隊(duì)來(lái)說(shuō),在項(xiàng)目開發(fā)之初選擇服務(wù)化開發(fā)是得不償失的,因?yàn)閷?duì)于此類團(tuán)隊(duì),勢(shì)必所有的工作都是需要我們開發(fā)人員來(lái)做的。
小團(tuán)隊(duì)或小公司如果開發(fā)人員把大規(guī)模的精力放在除業(yè)務(wù)之外的工作中,那么我們的開發(fā)效率勢(shì)必會(huì)特別低下,等我們系統(tǒng)開發(fā)一個(gè)版本出來(lái),也許此類需求已經(jīng)不是那么符合當(dāng)前的發(fā)展了,此類團(tuán)隊(duì)追求的是短平快并且方便部署更新。有人就會(huì)問,那我們又為什么不選擇SpringMVC
呢? 當(dāng)然如果團(tuán)隊(duì)中本身已經(jīng)有成型的一套SpringMVC的框架可以拿來(lái)即用,當(dāng)然也是完全ok的,但是所有使用過(guò)Springboot的同學(xué)都知道。
1.Springboot幫我們把以前在SpringMVC中需要使用XML來(lái)配置的configuration內(nèi)置化了,開發(fā)人員完全可以把大量精力放在業(yè)務(wù)鉆研優(yōu)化上面而不需要關(guān)注它是如何配置的。
2. 作為技術(shù)選型來(lái)說(shuō),一定要想到我們的業(yè)務(wù)也許會(huì)高速擴(kuò)張,在后期我們得能快速更新技術(shù)體系或者升級(jí)系統(tǒng),那么springboot的本能服務(wù)化就可以體現(xiàn)出來(lái)了。
3. 很多的新同學(xué)在學(xué)習(xí)springboot的時(shí)候,太多的資料本身是一種demo的學(xué)習(xí),是需要大家進(jìn)一步研究之后學(xué)以致用,不太貼近生產(chǎn),我希望通過(guò)此次開發(fā),可以直接開發(fā)一套可以生產(chǎn)使用的demo系統(tǒng)。
在開發(fā)任何一個(gè)新
系統(tǒng)的時(shí)候,我們要實(shí)現(xiàn)的是一套電商平臺(tái),那么我們首先要考慮一個(gè)基本的電商平臺(tái)都包含哪些業(yè)務(wù)功能? 上圖展示了要實(shí)現(xiàn)一個(gè)電商最簡(jiǎn)單的模塊信息。
在技術(shù)選型的時(shí)候,個(gè)人建議遵循幾點(diǎn)原則:
切合業(yè)務(wù)實(shí)際需要(任何脫離了業(yè)務(wù)的技術(shù)都是廢柴)
團(tuán)隊(duì)人員能力(要符合團(tuán)隊(duì)成員的實(shí)際情況,否則上手會(huì)很慢)
技術(shù)社區(qū)活躍度(選擇高活躍的技術(shù)對(duì)于后期排錯(cuò)相當(dāng)重要,更為重要的是大部分錯(cuò)誤已經(jīng)被別人試過(guò)了...)
安全性(必不可少的選擇)
可參考 Poc之后,我選擇放棄OSGI
我們主題很明確的表明了要使用springboot
來(lái)實(shí)現(xiàn)一個(gè)web
項(xiàng)目,那么抓住這兩個(gè)關(guān)鍵的點(diǎn)。 既然使用Springboot, 我們這里使用最新的版本2.2.0.RELEASE
, 既然是web項(xiàng)目,那么必然要使用到web相關(guān)的技術(shù),tomcat
(springboot內(nèi)置),并且我們采取前后端分離的技術(shù)來(lái)開發(fā),后端提供restful 的api, 前端使用jquery
& vuejs
, 既然是一個(gè)真實(shí)項(xiàng)目,數(shù)據(jù)庫(kù)當(dāng)然也是我們必不可少的,我們使用MYSQL 8.0+
,那么我們java要和db進(jìn)行交互,我們使用mybatis
作為bridge. 基本的技術(shù)已經(jīng)足夠我們使用了,那么具體依賴的package 后續(xù)會(huì)給大家一一介紹.
SpringBoot 2.2.0.RELEASE
Mysql 8.0.18
Mybatis 3.4.6
工預(yù)善其事必先利其器
, 以下是個(gè)人工具選擇,僅供參考:
IntelliJ IDEA (code tools)
Free Mybatis Plugin (幫助我們方法和SQL跳轉(zhuǎn))
Lombok (使用注解節(jié)省太多的codes,提升效率)
Maven Helper(幫助依賴分析)
Restful Toolkit(可以實(shí)現(xiàn)和postman一樣的簡(jiǎn)單效果,同時(shí)還能幫助我們生成一部分測(cè)試信息)
...其他插件就人各有志啦~
Mysql Workbench(Mysql tools)
PDman (數(shù)據(jù)庫(kù)設(shè)計(jì)工具,腳本的版本控制很好用哦)
說(shuō)的再多,都不如來(lái)點(diǎn)實(shí)在的,那么我們接下來(lái)開始我們的表演吧.
首先我們需要?jiǎng)?chuàng)建一個(gè)Maven的parent module, 用來(lái)將我們所有的模塊信息都放在一起,如service
,controller
等等.
expensive-shop
打開IDEA,選擇File => New => Project
點(diǎn)擊Next,分別輸入GroupId
& artifactId
點(diǎn)擊Next,修改project name
(不改也沒有關(guān)系)
點(diǎn)擊Finish
此時(shí),會(huì)生成src
和 pom.xml
, 因?yàn)樵擁?xiàng)目為父類項(xiàng)目,不會(huì)有code實(shí)現(xiàn),因此,刪除src
目錄,并修改pom.xml
文件.
<!--?xml version="1.0" encoding="UTF-8"?--> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>2.2.0.RELEASE</version> <relativepath /> </parent> <groupid>com.life-runner</groupid> <artifactid>expensive-shop</artifactid> <version>1.0-SNAPSHOT</version> <name>expensive-shop</name> <description>develop a on-line shop</description> <packaging>pom</packaging> <properties> <project.build.sourceencoding>UTF-8</project.build.sourceencoding> <project.reporting.outputencoding>UTF-8</project.reporting.outputencoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <!--spring默認(rèn)使用yml中的配置,有時(shí)候要用傳統(tǒng)的xml或properties配置,就需要使用spring-boot-configuration-processor--> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-configuration-processor</artifactid> <optional>true</optional> </dependency> <!--監(jiān)控端點(diǎn)依賴--> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-actuator</artifactid> </dependency> <dependency> <groupid>org.projectlombok</groupid> <artifactid>lombok</artifactid> <version>1.18.8</version> </dependency> </dependencies> </project>
主要關(guān)注2點(diǎn): 1.修改packaging
為pom, 表明是一個(gè)父類集合 2.引入parent
節(jié)點(diǎn)為我們的springboot
,這里是設(shè)置整個(gè)project的springboot 相關(guān)依賴以及版本管控 從上述中,在該節(jié)點(diǎn)設(shè)置version 為 2.2.0.RELEASE
之后, 下面所有的group
為org.springframework.boot
的依賴項(xiàng)都沒有顯示的設(shè)置版本信息.
和創(chuàng)建父類項(xiàng)目一樣的創(chuàng)建過(guò)程,依次創(chuàng)建我們需要用到的child modules, 完成后如下圖:
經(jīng)過(guò)上述環(huán)節(jié),相信大家已經(jīng)可以創(chuàng)建出我們項(xiàng)目所需要的架構(gòu)環(huán)境了
看完上述內(nèi)容,你們掌握springboot開發(fā)單體web shop的前言介紹和環(huán)境搭建方法的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。