[springboot 開發單體web shop] 1. 前言介紹和環境搭建

前言介紹和環境搭建

簡述

springboot 自己是爲了作服務化用的,咱們爲何要反其道使用它來開發一份單體web應用呢? 在咱們現實的開發工做中,還有大量的業務系統使用的是單體應用,特別是對於中小型團隊來講,在項目開發之初選擇服務化開發是得不償失的,由於對於此類團隊,勢必全部的工做都是須要咱們開發人員來作的,例如:html

  • 技術選型
  • 業務需求分析
  • 業務需求設計
  • 大量的測試
  • 運行部署
  • 運營健康監控
  • ...

小團隊或小公司若是開發人員把大規模的精力放在除業務以外的工做中,那麼咱們的開發效率勢必會特別低下,等咱們系統開發一個版本出來,也許此類需求已經不是那麼符合當前的發展了,此類團隊追求的是短平快而且方便部署更新。有人就會問,那咱們又爲何不選擇SpringMVC呢? 固然若是團隊中自己已經有成型的一套SpringMVC的框架能夠拿來即用,固然也是徹底ok的,可是全部使用過Springboot的同窗都知道。前端

> 1. Springboot幫咱們把之前在SpringMVC中須要使用XML來配置的configuration內置化了,開發人員徹底能夠把大量精力放在業務鑽研優化上面而不須要關注它是如何配置的。 > 2. 做爲技術選型來講,必定要想到咱們的業務也許會高速擴張,在後期咱們得能快速更新技術體系或者升級系統,那麼springboot的本能服務化就能夠體現出來了。 > 3. 不少的新同窗在學習springboot的時候,太多的資料自己是一種demo的學習,是須要你們進一步研究以後學以至用,不太貼近生產,我但願經過這次開發,能夠直接開發一套能夠生產使用的demo系統。vue

業務分析

在開發任何一個系統的時候,咱們要實現的是一套電商平臺,那麼咱們首先要考慮一個基本的電商平臺都包含哪些業務功能? architecture 上圖展現了要實現一個電商最簡單的模塊信息。java

技術選型

在技術選型的時候,我的建議遵循幾點原則:jquery

  1. 切合業務實際須要(任何脫離了業務的技術都是廢柴)
  2. 團隊人員能力(要符合團隊成員的實際狀況,不然上手會很慢)
  3. 技術社區活躍度(選擇高活躍的技術對於後期排錯至關重要,更爲重要的是大部分錯誤已經被別人試過了...)
  4. 安全性(必不可少的選擇)
  5. 可參考 Poc以後,我選擇放棄OSGI

咱們主題很明確的代表了要使用springboot 來實現一個web 項目,那麼抓住這兩個關鍵的點。 既然使用Springboot, 咱們這裏使用最新的版本2.2.0.RELEASE, 既然是web項目,那麼必然要使用到web相關的技術,tomcat(springboot內置),而且咱們採起先後端分離的技術來開發,後端提供restful 的api, 前端使用jquery & vuejs, 既然是一個真實項目,數據庫固然也是咱們必不可少的,咱們使用MYSQL 8.0+,那麼咱們java要和db進行交互,咱們使用mybatis做爲bridge. 基本的技術已經足夠咱們使用了,那麼具體依賴的package 後續會給你們一一介紹.web

  • SpringBoot 2.2.0.RELEASE
  • Mysql 8.0.18
  • Mybatis 3.4.6

開發工具

工預善其事必先利其器, 如下是我的工具選擇,僅供參考:spring

  • IntelliJ IDEA (code tools)
    • Free Mybatis Plugin (幫助咱們方法和SQL跳轉)
    • Lombok (使用註解節省太多的codes,提高效率)
    • Maven Helper(幫助依賴分析)
    • Restful Toolkit(能夠實現和postman同樣的簡單效果,同時還能幫助咱們生成一部分測試信息)
    • ...其餘插件就人各有志啦~
  • Mysql Workbench(Mysql tools)
  • PDman (數據庫設計工具,腳本的版本控制很好用哦)

Talk is cheap, show me the codes

說的再多,都不如來點實在的,那麼咱們接下來開始咱們的表演吧.sql

建立單體項目結構

首先咱們須要建立一個Maven的parent module, 用來將咱們全部的模塊信息都放在一塊兒,如service,controller 等等.數據庫

Create Parent Module expensive-shop

  • 打開IDEA,選擇File => New => Project create parent moduleapache

  • 點擊Next,分別輸入GroupId & artifactId write groupid & artifactid

  • 點擊Next,修改project name(不改也沒有關係) 修改project name

  • 點擊Finish

此時,會生成srcpom.xml, 由於該項目爲父類項目,不會有code實現,所以,刪除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默認使用yml中的配置,有時候要用傳統的xml或properties配置,就須要使用spring-boot-configuration-processor-->
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-configuration-processor</artifactid>
            <optional>true</optional>
        </dependency>
        <!--監控端點依賴-->
        <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>

主要關注2點: 1.修改packaging 爲pom, 代表是一個父類集合 2.引入parent節點爲咱們的springboot,這裏是設置整個project的springboot 相關依賴以及版本管控 從上述中,在該節點設置version 爲 2.2.0.RELEASE以後, 下面全部的grouporg.springframework.boot的依賴項都沒有顯示的設置版本信息.

Create child module

和建立父類項目同樣的建立過程,依次建立咱們須要用到的child modules, 完成後以下圖: create child module

通過上述環節,相信你們已經能夠建立出咱們項目所須要的架構環境了,下一次咱們將開始實際業務的編碼實現. gogogo.


奔跑的人生 | 博客園 | segmentfault | spring4all | csdn | 掘金 | OSChina | 簡書 | 頭條 | 知乎 | 51CTO

相關文章
相關標籤/搜索