[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

相关文章
相关标签/搜索