Log the experience of studying Spring Boot.
使用 redis 和 ConcurrentMap 作为缓存容器。
集成功能:
- 缓存加载、刷新、删除
- 注解参数中使用 SpEL
- 使用 redis 时,为 key 设置不同有效时间
- keyGenerator
集成功能:
- @ControllerAdvice 实现全局异常处理和返回体包装
- AOP 异常处理
- 通过 @Component、@WebFilter、ServletContextInitializer 三种方式配置 Filter
- jsr303
- Swagger
- AOP 记录请求参数
集成功能:
- 基础 crud
- 实体类的继承
- 多表关联
- 多对多
- 一对多
- 一对一
- JpaRepository 方法名解析
- native query
- 条件判断
- 分页排序
- Criteria 进行复杂条件查询
- QueryDSL
- JPQL
- 通过 entity graph 解决 N+1 问题
- 自动插入审计字段,记录 createTime、createUser 和 updateTime、updateUser
- 实体操作监听
- 多数据源
- @Transactional 传播属性
- @Version 实现乐观锁
- 逻辑删除
使用 Redisson、Lettuce、RedisTemplate。集成功能:
- RedisTemplate 进行增删改查
- Redisson 实现 BloomFilter
- 集群
集成功能:
- @Conditional 实现不同环境下 Bean 配置
- 容器生命周期
- 属性加载
- 使用 ImportSelector、ImportBeanDefinitionRegistrar 配置 Bean
- @Aync 实现异步任务
- @Scheduled 实现定时任务
包括 Mybatis 和 Mybatis Plus。集成功能:
- 扩展
BaseMapper#insert
,实现 batch insert - LocalDate 和 LocalDateTime 的 TypeHandler
- association