溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

springboot開發(fā)單體web shop的前言介紹和環(huán)境搭建方法

發(fā)布時(shí)間:2021-09-28 09:18:08 來(lái)源:億速云 閱讀:139 作者:柒染 欄目:大數(shù)據(jù)

springboot開發(fā)單體web shop的前言介紹和環(huán)境搭建方法,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問題。

前言介紹和環(huán)境搭建

簡(jiǎn)述

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)。

業(yè)務(wù)分析

在開發(fā)任何一個(gè)系統(tǒng)的時(shí)候,我們要實(shí)現(xiàn)的是一套電商平臺(tái),那么我們首先要考慮一個(gè)基本的電商平臺(tái)都包含哪些業(yè)務(wù)功能? springboot開發(fā)單體web shop的前言介紹和環(huán)境搭建方法 上圖展示了要實(shí)現(xiàn)一個(gè)電商最簡(jiǎn)單的模塊信息。

技術(shù)選型

在技術(shù)選型的時(shí)候,個(gè)人建議遵循幾點(diǎn)原則:

  1. 切合業(yè)務(wù)實(shí)際需要(任何脫離了業(yè)務(wù)的技術(shù)都是廢柴)

  2. 團(tuán)隊(duì)人員能力(要符合團(tuán)隊(duì)成員的實(shí)際情況,否則上手會(huì)很慢)

  3. 技術(shù)社區(qū)活躍度(選擇高活躍的技術(shù)對(duì)于后期排錯(cuò)相當(dāng)重要,更為重要的是大部分錯(cuò)誤已經(jīng)被別人試過(guò)了...)

  4. 安全性(必不可少的選擇)

  5. 可參考 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

開發(fā)工具

工預(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ì)工具,腳本的版本控制很好用哦)

Talk is cheap, show me the codes

說(shuō)的再多,都不如來(lái)點(diǎn)實(shí)在的,那么我們接下來(lái)開始我們的表演吧.

創(chuàng)建單體項(xiàng)目結(jié)構(gòu)

首先我們需要?jiǎng)?chuàng)建一個(gè)Maven的parent module, 用來(lái)將我們所有的模塊信息都放在一起,如service,controller 等等.

Create Parent Module expensive-shop
  • 打開IDEA,選擇File => New => Project springboot開發(fā)單體web shop的前言介紹和環(huán)境搭建方法

  • 點(diǎn)擊Next,分別輸入GroupId & artifactId springboot開發(fā)單體web shop的前言介紹和環(huán)境搭建方法

  • 點(diǎn)擊Next,修改project name(不改也沒有關(guān)系) springboot開發(fā)單體web shop的前言介紹和環(huán)境搭建方法

  • 點(diǎn)擊Finish

此時(shí),會(huì)生成srcpom.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之后, 下面所有的grouporg.springframework.boot的依賴項(xiàng)都沒有顯示的設(shè)置版本信息.

Create child module

和創(chuàng)建父類項(xiàng)目一樣的創(chuàng)建過(guò)程,依次創(chuàng)建我們需要用到的child modules, 完成后如下圖: springboot開發(fā)單體web shop的前言介紹和環(huán)境搭建方法

經(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è)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(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)容。

AI