Spring 工程师常规解决方案

284 天前
 kachu673

下面是我的常用解决方案,主要想抛砖引玉,希望大佬们多多补充,拓宽下大伙的视野:

ORM:Mybaits 、Mybaits-plus 登录:JWT 、Session 安全:拦截器、Spring Security 缓存:Spring Cache 、Spring Data Redis 定时:Spring Task 异常:全局异常处理 结果:统一 Result 处理 工具集:hutool 、POI 网络通信:WebSocket 、HttpCilent 插件:lombook 日志:SLF4J 对象存储:Alioss

还遗漏哪些场景的工具,希望大佬们多多补充。

5107 次点击
所在节点    Java
46 条回复
uxstone
284 天前
单元测试
leo97
284 天前
ORM: spring data jpa + querydsl
0xGnaixEuy
284 天前
data jpa 两票
tedzhou1221
283 天前
word 文档生成 :poi-tl
属性复制:mapstructs, reflectasm
cslive
283 天前
ORM:spring data jpa
工具集:apache 全家桶
tairan2006
283 天前
http 客户端的话,只有 spring feign 比较好用,其他的都太繁琐;
Spring Security 设计的太复杂,不如自己写;
定时直接用 k8s cronjob 或者 xxljob ;
limyel
283 天前
hutool ❌
guava ✅
hyqCrystal
283 天前
Spring Security=>sa-token
Alioss=>minio
HttpCilent 插件=>feign/forest 微服务下可采用 dubbo
Spring Task=>xxl-job
loveaeen
283 天前
@hyqCrystal sa-token 一直听说,但是不知道实际用起来是否可靠
knightdf
283 天前
Mybaits -> JOOQ
Ayanokouji
283 天前
语言:java-> kotlin
orm:ktorm
uianz
283 天前
ORM: JOOQ
工具集: VAVR
HttpCilent: Forest
yule111222
283 天前
@Ayanokouji 赞!同道中人啊
iosyyy
283 天前
你这标点符号不如不用..也太乱了
iosyyy
283 天前
@iosyyy 另外不要使用 hutool 工具包
zbatman
283 天前
@iosyyy 有啥说法吗
bitmin
283 天前
数据库查询用了 JPA 、JdbcTemplate ,写了工具增强功能,比如对象转 Specification 、根据查询参数删除 SQL 中不需要的查询语句

后台页面经常一堆查询条件,我先写完整的查询 SQL ,再动态把查询条件为 null 的语句删了。或者说是一开始把查询语句解析了,根据查询条件动态拼上去,类似 Mybaits XML 中的 <IF> 标签,但是我不爱用 XML 。这样我只需要写原生 SQL ,IDEA 对原生 SQL 支持度极高写起来很舒服。最早用 Kotlin 自己写的解析,后来换成 Java 就直接把 Durid 内 SQL 语法解析的部分抽出来依赖

数据库查询封装了一层缓存,就是玩。直接原因是本地开发调试查询远程 Mysql 和 Redis 太慢了,就加了缓存,ThreadLocal 、Caffeine 、Redis 、Mysql 一级一级往下查,支持主键和索引查询的缓存,支持返回自定义的虚拟数据


Sa-Token 一开始同事想用就让用了,后来看了源码觉得自己的业务不用这么复杂,就自己写了一个替换了

自定义注解处理器,用 AbstractProcessor 、JavaPoet 编译时生成代码,可以少写些模版代码,要是没注解处理器 Kotlin 换到 Java 就不方便太多

属性复制用本站上推广过的 IDEA 插件 BeanMappingKey ,针对复杂类之间的代码生成还是不大好用,需要手动调整
BQsummer
283 天前
shiro 比 Spring Security 简单点;
工具类: guava / apache commons;
日志: logback;
task: quartz;
Oktfolio
283 天前
@tairan2006 #6 retrofit 呢
edotac
283 天前
POJO 映射:MapStruct
定时任务:XXL-JOB
HTTP:OpenFeign

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/961008

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX