后端项目搭建
创建数据库和导入基础表数据
聚合工程概念
使用Java技术开发的工程项目,无论是数据处理系统还是Web网站,随着项目的不断发展,需求的不断细化与添加,工程项目中的代码越来越多,包结构也越来越复杂这时候工程的进展就会遇到各种问题:
(1)不同方面的代码之间相互耦合,这时候–系统出现问题很难定位到问题的出现原因,即使定位到问题也很难修正问题,可能在修正问题的时候引入更多的问题。
(2)多方面的代码集中在一个整体结构中,新入的开发者很难对整体项目有直观的感受,增加了新手介入开发的成本,需要有一个熟悉整个项目的开发者维护整个项目的结构(通常在项目较大且开发时间较长时这是很难做到的)。
(3)开发者对自己或者他人负责的代码边界很模糊,这是复杂项目中最容易遇到的,导致的结果就是开发者很容易修改了他人负责的代码且代码负责人还不知道,责任追踪很麻烦。
将一个复杂项目拆分成多个模块是解决上述问题的一个重要方法,多模块的划分可以降低代码之间的耦合性(从类级别的耦合提升到jar包级别的耦合),每个模块都可以是自解释的(通过模块名或者模块文档),模块还规范了代码边界的划分,开发者很容易通过模块确定自己所负责的内容。
创建Maven父工程
引入springboot基础jar包
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<dependencies>
<!--集成springmvc并实现自动配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--集成springboot的测试框架 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
创建Maven子工程
创建springboot启动类并启动
启动完成后,看到端口号,并通过浏览器访问ip:端口,看到404,表示父子工程创建成功。
依次创建剩余模块
springboot整合mybatisplus
引入jar包
在父工程pom.xml引入myabtis-plus和mysql驱动包
<!--集成mybatis-plus框架 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<!--集成mysql连接驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
修改配置文件
在controller的resources文件中创建yml配置文件
application.yml
spring:
profiles:
active: dev
mybatis-plus:
configuration: # 支持mybatis的原生的配置,就是既可以写sql也可以调用封装好方法来执行增删改查
map-underscore-to-camel-case: true # 是否开启驼峰命名规则,默认是false
auto-mapping-behavior: full # 配置自动映射策略,让mybatis来自动把数据库自动映射对应的实体
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 打印sql语句,日志
mapper-locations: classpath*:**.mapper/**/*Mapper.xml #指定mybatis的xml文件位置
application-dev.yml
server:
port: 8081 # 修改springboot内嵌默认tomcat端口号
spring: # 前提:mysql要在5.5-5.7版本
datasource:
driverClass: com.mysql.jdbc.Drvier
url: jdbc:mysql://localhost:3306/aaaexam?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
username: root
password: wl123
# mysql8.0版本
# spring:
# datasource:
# url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
# driver-class-name: com.mysql.cj.jdbc.Driver
# username: root
# password: wl123
Springboot启动类上加上mapper扫描注解
启动springboot测试
登录接口
VO类
UserInfoMapper接口
UserInfoService接口
测试类TestCase
后端路由LoginController和PostMan测试
验证逻辑
自定义异常
状态码工具类SystemCode
封装业务层返回数据ResultDTO
封装MD5加密工具MD5Utils
封装公共BaseController
专门用于封装json,发送数据用的Controller
重构后端路由LoginController
postman测试
错误测试
正确测试
新增全局异常处理工具类GlobalExceptionHandler
postman测试
后端控制台报错,但是会返回错误信息给到前端