springboot 自己是为了作服务化用的,咱们为何要反其道使用它来开发一份单体web应用呢? 在咱们现实的开发工做中,还有大量的业务系统使用的是单体应用,特别是对于中小型团队来讲,在项目开发之初选择服务化开发是得不偿失的,由于对于此类团队,势必全部的工做都是须要咱们开发人员来作的,例如:html
小团队或小公司若是开发人员把大规模的精力放在除业务以外的工做中,那么咱们的开发效率势必会特别低下,等咱们系统开发一个版本出来,也许此类需求已经不是那么符合当前的发展了,此类团队追求的是短平快而且方便部署更新。有人就会问,那咱们又为何不选择SpringMVC
呢? 固然若是团队中自己已经有成型的一套SpringMVC的框架能够拿来即用,固然也是彻底ok的,可是全部使用过Springboot的同窗都知道。前端
> 1. Springboot帮咱们把之前在SpringMVC中须要使用XML来配置的configuration内置化了,开发人员彻底能够把大量精力放在业务钻研优化上面而不须要关注它是如何配置的。 > 2. 做为技术选型来讲,必定要想到咱们的业务也许会高速扩张,在后期咱们得能快速更新技术体系或者升级系统,那么springboot的本能服务化就能够体现出来了。 > 3. 不少的新同窗在学习springboot的时候,太多的资料自己是一种demo的学习,是须要你们进一步研究以后学以至用,不太贴近生产,我但愿经过这次开发,能够直接开发一套能够生产使用的demo系统。vue
在开发任何一个新
系统的时候,咱们要实现的是一套电商平台,那么咱们首先要考虑一个基本的电商平台都包含哪些业务功能? 上图展现了要实现一个电商最简单的模块信息。java
在技术选型的时候,我的建议遵循几点原则:jquery
咱们主题很明确的代表了要使用springboot
来实现一个web
项目,那么抓住这两个关键的点。 既然使用Springboot, 咱们这里使用最新的版本2.2.0.RELEASE
, 既然是web项目,那么必然要使用到web相关的技术,tomcat
(springboot内置),而且咱们采起先后端分离的技术来开发,后端提供restful 的api, 前端使用jquery
& vuejs
, 既然是一个真实项目,数据库固然也是咱们必不可少的,咱们使用MYSQL 8.0+
,那么咱们java要和db进行交互,咱们使用mybatis
做为bridge. 基本的技术已经足够咱们使用了,那么具体依赖的package 后续会给你们一一介绍.web
工预善其事必先利其器
, 如下是我的工具选择,仅供参考:spring
说的再多,都不如来点实在的,那么咱们接下来开始咱们的表演吧.sql
首先咱们须要建立一个Maven的parent module, 用来将咱们全部的模块信息都放在一块儿,如service
,controller
等等.数据库
expensive-shop
打开IDEA,选择File => New => Project apache
点击Next,分别输入GroupId
& artifactId
点击Next,修改project name
(不改也没有关系)
点击Finish
此时,会生成src
和 pom.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
以后, 下面全部的group
为org.springframework.boot
的依赖项都没有显示的设置版本信息.
和建立父类项目同样的建立过程,依次建立咱们须要用到的child modules, 完成后以下图:
通过上述环节,相信你们已经能够建立出咱们项目所须要的架构环境了,下一次咱们将开始实际业务的编码实现. gogogo.
奔跑的人生 | 博客园 | segmentfault | spring4all | csdn | 掘金 | OSChina | 简书 | 头条 | 知乎 | 51CTO