3 SpringBoot+VUE案例开发
经过对SpringBoot及VUE的学习,我们已经对他们的开发流程有了一定的了解,我们将这两个框架进行整合,并实现一个简单的前后的开发案例“HelloWorld”。这个案例我们主要实现:(1)系统的登陆、退出;(2)用户的查询、新增、修改、删除。系统架构如下图所示:
从架构图中可以看到前端UI采用VUE框架开发, vue框架整合了mock、validator、vuex等组件。后端包括:控制层、业务服务层和数据访问层,基于SpringBoot2开发,控制层主要实现了rest的http服务以及权限控制;业务服务层主要用于实现业务逻辑,同时也具备了日志、事物、缓存等功能;数据访问层采用mybatis框架实现。本节案例开发采用mysql作为数据库。
3.1 后端开发
3.1.1 创建工程
后端框架采用SpringBoot2+mybatis+redis整合框架开发,可以参照我们在SpringBoot开发的第一个工程,我们创建一个helloworld的后端工程。结构如下:
3.1.2 工程配置
SpringBoot工程的主要配置文件包括maven的POM文件和application.properties配置文件。
pom文件内容为:
<?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">
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>helloworld</artifactId>
<packaging>jar</packaging>
<version>1.0.1.RELEASE</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<lombok.version>1.16.18</lombok.version>
<commons-lang3.version>3.8.1</commons-lang3.version>
<commons-collections.version>3.2.1</commons-collections.version>
<redis.version>2.9.0</redis.version>
<fastjson.version>1.2.21</fastjson.version>
<swagger2.version>2.2.2</swagger2.version>
<oracle.version>11.2.0.3</oracle.version>
<mysql.version>8.0.11</mysql.version>
<druid-starte.version>1.1.1</druid-starte.version>
<junit.version>4.12</junit.version>
<log4j.version>1.2.15</log4j.version>
<net.minidev.json-smart.version>2.2.1</net.minidev.json-smart.version>
<net.minidev.asm.version>1.0.2</net.minidev.asm.version>
<httpclient.version>4.5.2</httpclient.version>
<shiro.version>1.4.0</shiro.version>
<shiro-redis.version>3.1.0</shiro-redis.version>
<mybatis-spring.version>1.3.2</mybatis-spring.version>
<mybatis-mapper.version>3.4.0</mybatis-mapper.version>
<mybatis-pagehelper.version>1.2.10</mybatis-pagehelper.version>
<guava.version>18.0</guava.version>
<jwt.verson>0.9.0</jwt.verson>
<docker.host>http://127.0.0.1:2375</docker.host>
<docker.repostory>127.0.0.1:5000</docker.repostory>
<docker.registry.name>zone7</docker.registry.name>
<docker.plugin.version>0.4.13</docker.plugin.version>
<skipDockerBuild>false</skipDockerBuild>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!-- 移除嵌入式tomcat插件,需要增加servlet-api,打包时打开注解 -->
<!--<exclusion>-->
<!--<groupId>org.springframework.boot</groupId>-->
<!--<artifactId>spring-boot-starter-tomcat</artifactId>-->
<!--</exclusion>-->
<!-- 移除springboot自带的logback日志管理 -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 移除嵌入式tomcat插件,需要增加servlet-api,打包时打开注解 -->
<!--<dependency>-->
<!--<groupId>javax.servlet</groupId>-->
<!--<artifactId>javax.servlet-api</artifactId>-->
<!--<version>3.1.0</version>-->
<!--<scope>provided</scope>-->
<!--</dependency>-->
<!-- 引入依赖之后spring.aop.auto默认开启,不需要添加@EnableAspectJAutoProxy来启动 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!--安全验证相关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-security</artifactId>
<version>2.1.2.RELEASE</version>