分组校验
在 Spring Boot 中,我们可以使用 Hibernate Validator 进行分组校验。这允许针对不同业务场景(如创建或更新)应用不同的规则。
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
定义分组
public interface CreateGroup { }
public interface UpdateGroup { }
定义校验项时指定归属的分组
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
public class User {
@NotBlank(message = "姓名不能为空", groups = {UpdateGroup.class})
private String name;
@NotBlank(message = "用户名不能为空", groups = {CreateGroup.class, UpdateGroup.class})
@Size(min = 5, max = 20, message = "用户名长度必须在 5-20 个字符之间", groups = {CreateGroup.class, UpdateGroup.class})
private String username;
// getter 和 setter 方法省略...
}
校验时指定要校验的分组
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
@RestController
public class UserController {
@PostMapping("/create")
public String createUser(@Validated({CreateGroup.class}) @RequestBody User user) {
// 保存用户信息的逻辑...
return "创建成功";
}
@PostMapping("/update")
public String updateUser(@Validated({UpdateGroup.class}) @RequestBody User user) {
// 更新用户信息的逻辑...
return "更新成功";
}
}
若未显式指定分组,则默认归属 Default 组,且分组支持继承关系。

自定义注解
已有的注解不能满足所有的校验需求,特殊的情况需要自定义校验。在 Spring Boot 中,自定义注解是一种强大的机制,允许开发者创建具有特殊含义的标记,用于修饰代码元素并给它们附加元数据。
要创建一个自定义注解,需要使用 Java 提供的元注解来定义注解的自身属性和行为。其中最常用的包括 @Target、@Retention、@Documented 和 @Inherited 等。通过这些元注解,可以指定自定义注解的应用目标(如方法、类或字段)、保留策略(如源代码、编译期或运行期)以及是否可被继承和文档化。


分页查询
引入 PageHelper 插件可以快速实现分页功能。
<!-- PageHelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.13</version>
</dependency>
登入验证(集成 Redis)
令牌主动失效机制
- 登录成功后,给浏览器响应令牌的同时,把该令牌存储到 Redis 中。
- LoginInterceptor 拦截器中,需要验证浏览器携带的令牌,并同时需要获取到 Redis 中存储的与之相同的令牌。
- 当用户修改密码成功后,删除 Redis 中存储的旧令牌。
SpringBoot 集成 Redis
导入 spring-boot-starter-data-redis 起步依赖

在 yml 配置文件中,配置 Redis 连接信息

调用 API(StringRedisTemplate) 完成字符串的存取操作
SpringBoot 项目部署
引入 Maven 插件(在 build 标签中)。

注意:JAR 包部署,要求服务器必须有 JRE 环境。

然后在生成 JAR 包的目录下,打开 CMD 窗口,运行:
java -jar jar 包位置
属性配置方式
项目配置文件方式
这种运维人员没法修改的。


命令行参数方式

例如:

环境变量方式

外部配置文件方式


配置文件优先级
优先级依次增强:
- 项目中 resources 目录下的 application.yml
- JAR 包所在目录下的 application.yml
- 操作系统环境变量
- 命令行参数
多环境开发 - Profiles
单文件配置
---分隔不同环境的配置spring.config.activate.on-profile配置所属的环境spring.profiles.active激活环境
多文件配置
- 通过多个文件分别配置不同环境的属性
- 文件的名字为
application-环境名称.yml - 在
application.yml中激活环境



