这个项目是我学习Spring Boot系列的有一个Demo。目的当然也是为了实践。了解并逐渐深入学习相关技术。
- 编程环境:
Java8
,Windows10
,maven
,InterlliJ IDEA
, - 数据库:
MySQL5.7+
,Redis
- ORM框架:
Mybatis Plus
- 模板引擎:
Velocity
- 安全框架:
Security
- 其他工具:
Lombok
,SpringBoot热部署
- 分页插件:sqlhelper (支持多种数据库,并且可以从PageHelper迁移到sqlhelper),此处使用 mybatisplus-springboot作为示例。
- 新建
config/CodeGenerator.java
自动代码生成工具:注意修改数据的相关连接信息- 数据库的连接驱动
Driver
- 数据库的连接信息
url
- 数据库的连接用户和密码(
username
/password
) - 配置生成的文件存放的位置。
- 数据库的连接驱动
- 直接运行
config/CodeGenerator.java
,输入提示所需信息即可。 - 在
controller/UserController.java
中书写一个方法findAll()
得到数 没有用户ID
的数据集合;所以需要手动在User.java
中手动添加private Integer id; // 如果没有,则出现 有关于 @TableId 相关的错误信息.
- 文章参考来源 。
- `Spring Boot 热部署:讲解
Mybatis Plus
学习辅助 。
- 学习网址:来源微信文章
SpringSecurity
的默认用户和密码分别为:user/【每次启动控制台的密码】,需要手动设置账号和密码(在配置文件application.yaml
中指定user
的name
和password
即可)。SpringSecurity
配置指定密码的方式有两种,第一种在配置文件,即上面所属;第二种在Java类中配置,需要配置比较多的内容。使用第二种java类配置将覆盖application.yaml中的用户和密码配置
.- 代码中的配置 优先级高于 配置文件中的配置。
- 自定义登录页面
- 引入相关的静态页面的数据放入到
static
目录下,注意,如果时默认的情况下请将前端的name属性值和后端的security
的SecurityConfig
保持一致的参数key
否认,将出现错误:用户名:<input type="text" id="name" name="username"> 密码:<input type="password" id="pass" name="password">
“这个错误出现的有些奇怪!!Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [188] milliseconds .
” - 引入相关的静态页面的数据放入到
- 设置
session
的超时时间,当达到超时时间后,自动将用户退出登录。Session
超时的配置是SpringBoot
原生支持的,我们只需要在application.properties
配置文件中
- 导入
user.sql
文件的数据到指定的数据库,建立好MySQL
连接的驱动相关信息。 - 配置文件
application.yaml
加入逻辑删除的配置。mybatis-plus: global-config: db-config: logic-delete-value: 1 # 逻辑已删除值(默认1) logic-not-delete-value: 0 # 逻辑未删除值(默认0)
-
- 如果是Mybatis Plus 3.1.1 之前的版本,则在
MybatisPlusConfig.java
中注册@Bean
:参考文章
@Bean public ISqlInjector sqlInjector() { return new LogicSqlInjector(); }
- 如果事在 3.1.1之后的版本,则无需在
MybatisPlusConfig.java
配置注册@Bean
。
- 如果是Mybatis Plus 3.1.1 之前的版本,则在
- 在实体类中的逻辑删除字段上加上注解
@TableLogic
/** * 逻辑删除标识(1:有效数据,0:无效数据) */ @TableLogic(value = "0", delval = "1") // value 标识未删除,delval 标识删除了(双重保证,注意全局也配置,需要保持一致性) @TableField(value = "remove_tag") private Integer removeTag;
- 测试:
/** * 根据ID,逻辑删除字段 * URL:http://localhost:8989/mybatisplus/user/deleteById?id=1 * * @param id 用户ID * @return 是否删除成功 */ @DeleteMapping("/deleteById") public String deleteById(@RequestParam(value = "id", defaultValue = "1L") Long id) { return iUserService.removeById(id) ? "删除成功" : "删除失败"; }
- 格式:
type(scope) : subject
- 说明:
- 工具推荐:
commitizen
是一个撰写合格 Commit message 的工具(依照 AngularJS 提交的规范) - 自定义spring boot 启动banner地址:
自定义spring boot的banner ① http://patorjk.com/software/taag ② http://www.network-science.de/ascii/
- 修改
spring boot
的banner
步骤:- 在
resources
目录下,新建一个文件 banner.txt ;即可 - 附加:可以在启动类中加入启动图标字符即可。
- 在