项目结构

结构

项目依赖

原则:要什么配什么(application文件同理)
springboot - 2.3.2.RELEASE
选择理由:比较稳定的版本

mybatis-plus - 3.5.2
理由:兼容mz项目的mybatis,同时简单CRUD也不需要编写,但实测没有JPA灵活。主要为了兼容,否则迁移sql工作量也不小

jdk - 1.8
理由:企业比较稳定的版本

hu-tool
理由:有很多实用的工具包,如UUID生成器,数字类型判断等

启动配置

  • 增加了数据库校验环节,确保数据库配置正确的前提下才能启动项目
  • 增加了插入记录和修改记录自动更新时间的功能

报错信息

报错原因:nested exception is java.lang.NoClassDefFoundError: org/mybatis/logging/LoggerFactory

问题背景
使用springboot整合mybatis-plus时,出现报错

思考过程
控制台提示LoggerFactory空指针,说明无法将mapper对象加入其中,也就是说拿不到这个对象,那么可能是没扫描到包的问题,也有可能是版本不兼容的问题,或者是配置文件出错导致的,最后没想到的是maven依赖包的冲突问题

解决方案
在pagehelper中排除mybatis

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</exclusion>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</exclusion>
</exclusions>
</dependency>

开发规范

基于《Java开发手册(嵩山版)》之外,加一些自己的要求

  • web文件夹存放request与response文件。原则:对关键信息隐藏,前端不必要写入多余字段,也不需要收到无用的字段
  • 简单的sql交给BaseMapper去处理,复杂的需要自己写入xml
  • 接口方法标注注释,描述信息、作者、版号、时间、参数意义、返回体
  • 按Java类的分类放入不同的package中,保证条理有序
  • 物尽其用,保证质量。不引多余jar包,不写冗余代码,不写晦涩难懂的代码,高端的工程往往只需要最朴素的实现方式