最近基于《深入浅出Spring Boot 2.x》升级为《深入浅出Spring Boot 3.x》已经完成,预计明年春节后可以出版,我先贴出目录给大家看看。以后希望大家多多支持。
3.3.2 消除歧义性——@Primary和@Qualifier
7.1.2 RedisTemplate和StringRedisTemplate
7.1.4 SessionCallback和RedisCallback接口
10.3.3 GenericConverter集合和数组转换
10.9.3 国际化实例——SessionLocaleResolver
10.10.1 @ResponseBody转换为JSON的秘密
12.2 使用UserDetailsService接口定制用户信息
12.2.3 使用自定义UserDetailsService对象
第16章 Spring Cloud Alibaba微服务开发
16.3 流量管控——Spring Cloud Alibaba Sentinel
预计今年11月左右可以出版,因为最近国家对出版社要求高,所以出书速度很慢。
Spring Boot 3.x只能支持Java 17 +,为了适应新的潮流,这本书尽量使用了最新的Java 8之后的语法,比如下面的代码:
@RequestMapping(value = "/valid/validate")
@ResponseBody
public Map<String, Object> validate(
@Valid @RequestBody ValidatorPojo vp, Errors errors) {
var errMap = new HashMap<String, Object>(); // ①
// 获取错误列表
var oes = errors.getAllErrors();
for (ObjectError oe : oes) {
String key = null;
String msg = null;
// 字段错误
if (oe instanceof FieldError fieldError) { // 注意instanceof的新语法 ②
key = fieldError.getField();// 获取错误验证字段名
} else {
// 非字段错误
key = oe.getObjectName();// 获取验证对象名称
}
// 错误信息
msg = oe.getDefaultMessage();
errMap.put(key, msg);
}
return errMap;
}
注意上面的代码,引入了新的Java语法:
- 代码①处,关键字var的使用,让Java编译器自己推断类型;
- 代码②处,instanceof关键字的使用,判定后,省去强制转换。