Github 地址: https://github.com/othorizon/spring-best-practices
spring 最佳实践
总结了本人 3 年 Java 开发中的一些开发经验和工具类以及 Spring 框架的应用
采用了 Spring 项目的模式来最简单直观的呈现,直接拿来作为初始化项目也是不错的选择
该项目还在打磨中,仍有很多需要完善和优化的地方
持续更新,欢迎 PR
概要
- 如何配置拦截器:interceptor、filter、 @RestControllerAdvice
- bean 的初始化:InitializingBean 接口、 @conditionXXX 注解
- 如何获取 applicationContext 上下文:ApplicationContextAware
- 枚举的优雅使用:1、如何把枚举作为接口的交互参数:@JsonCreator、 @JsonValue ,要注意 fastjson 和 spring 采用的 jackson 对注解的支持 2、valueOfByXX
- 缓存的优雅使用: @Cacheable、CaffeineCacheManager、请求级别的缓存 RequestScopedCacheManager,注意防止副作用操作污染缓存数据
- 配置文件配置时间属性:java.time.Duration
- 正确的报错方式,message 的国际化
- 日志的优雅配置:log4j 与 logback 的基础、使用 MDC 增加 tractId 跟踪日志
第三方工具的使用
- RestTemplate 的优雅使用:工具类的封装、header 的注入
- 借助 MapStruct 实现 po、bo、vo 等对象之间的转换
- 健康接口,版本检查:buildnumber-maven-plugin
- 如何深度复制对象:json 复制、mapStruct
- apache-common 系列、hutool 等基本工具类
- 自定义的时间格式化工具类、jackson 的封装工具
运维
- 数据库版本维护 flyway
- Jenkins 的常用配置方式
Github 地址: https://github.com/othorizon/spring-best-practices
先起个头,后面会花时间去整理、沉淀和打磨的。
不知道这东西到底有没有写的价值,所以有些小纠结, 不过对别人来说也许毫无用处,但是对我来说却是非常有意义的了。
如果您觉得这里面有能对你有点用处的东西,麻烦给个 star 支持下哈~~
