Java后端技术框架
目录
目录
一、简介
本文介绍Java后端开发的技术选型。持续更新。
本文中的每一项都按照从上到下为从好到差的顺序排列技术栈
二、持久层框架
说明
这几个框架我都用过。按开发速度来看,一个模块,如果MyBatis-Plus开发需要1天,则JPA需要2.5天,MyBatis需要4天。
新项目基本都是用MyBatis-Plus了。
评分
MyBatis-Plus(95)
好处:开发速度快、兼容MyBatis
缺点:个别场景的多表联查不如JPA。
JPA(60)
好处:个别场景的多表联查比较好用。
缺点:正常场景下,开发速度不如MyBatis-Plus。
MyBatis(40)
优点:可以被MyBatis-Plus依赖,与MyBatis-Plus共同使用。
缺点:开发速度慢
三、分布式框架
说明
现在新项目一般都用Spring Cloud Alibaba了。OpenFeign+nacos+sentinel,很舒服!
评分
Spring Cloud Alibaba(95)
优点:feign调用基于http,灵活;nacos和sentinel很好用
Spring Cloud原生(80)
优点:feign调用基于http,灵活
缺点:eureka已闭源,配置中心使用不方便
Dubbo(50)
优点:基于长连接,比SpringCloud速度稍快一点儿
缺点:不够灵活,且相关的组件很少
四、分布式事务
- Seata(95分)
- 阿里开发,很流行
五、MQ
- RocketMQ(95)
- RabbitMQ(85)
- Kafka(70)
六、分布式定时任务
- XXL-JOB(90分)
- 很流行;很好用
- PowerJob(80分)
- 流行度低;使用体验略差
- Quartz(50分)
- 难用;
- Spring自带(30分)
- 无可视化页面
七、分布式事务
-
Seata(95分)
- 阿里开发,很流行
八、分布式锁
-
Redisson(95分)
- 续期、可重入等接近完美
- Zookeeper(70分)
- 用的比较少
- MySQL(30分)
- 效率很低
九、MQ
- RocketMQ(95)
- RabbitMQ(85)
- Kafka(70)
十、杂项
1)Redis客户端
- Ridisson(98)
- RedisTemplate(80)
- Jedis(60)
2)接口文档工具
knife4j(90)
swagger(75)
apidoc(60)
3)JSON工具
Jackson(99)
Spring自带,效率和稳定性都很好
FastJson(60)
bug多,经常爆出问题
gson(50)
不流行
4)HTTP客户端
RestTemplate(95)
Spring自带,稳定性好
HttpRequest(80)
hutool的,灵活性好
5)持续集成
jenkins
6)其他
属性映射:mapStruct
token管理:jwt