简介
本文介绍Java后端开发的技术选型。持续更新。
本文中的每一项都按照从上到下为从好到差的顺序排列技术栈,并给它们打分(满分100分)。我推荐使用最高分的那个,也就是第一个。
持久层框架
说明
这几个框架我都用过。按开发速度来看,一个模块,如果MyBatis-Plus开发需要1天,则JPA需要2.5天,MyBatis需要4天。
新项目基本都是用MyBatis-Plus了。
评分
- MyBatis-Plus(95) 
  
- 好处:开发速度快、兼容MyBatis
 - 缺点:个别场景的多表联查不如JPA。(但可以使用MyBatis)
 
 - JPA(60) 
  
- 好处:个别场景的多表联查比较好用。
 - 缺点:正常场景下,开发速度不如MyBatis-Plus。
 
 - MyBatis(40) 
  
- 优点:可以被MyBatis-Plus依赖,与MyBatis-Plus共同使用。
 - 缺点:开发速度慢
 
 
分布式框架
说明
现在新项目一般都用Spring Cloud Alibaba了。feign+nacos+sentinel,很舒服!
评分
- Spring Cloud Alibaba(95) 
  
- 优点:feign调用基于http,灵活;nacos和sentinel很好用
 
 - Spring Cloud原生(80) 
  
- 优点:feign调用基于http,灵活
 - 缺点:eureka已闭源,配置中心使用不方便
 
 - Dubbo(50) 
  
- 优点:基于长连接,比SpringCloud速度稍快一点儿
 - 缺点:不够灵活,且相关的组件很少
 
 
分布式锁
- Redisson(95分) 
  
- 续期、可重入等接近完美
 
 - Zookeeper(70分) 
  
- 用的比较少
 
 - MySQL(30分) 
  
- 效率很低
 
 
分布式定时任务
- XXL-JOB(90分) 
  
- 很流行;很好用
 
 - PowerJob(80分) 
  
- 流行度低;使用体验略差
 
 - Quartz(50分) 
  
- 难用;
 
 - Spring自带(30分) 
  
- 无可视化页面
 
 
分布式事务
- Seata(95分) 
  
- 阿里开发,很流行
 
 
MQ
- RocketMQ(95) 
  
- 支持延迟消息
 - 吞吐量也够大
 
 - RabbitMQ(85) 
  
- 支持延迟消息
 - 吞吐量略小(但对于一般项目足够了)
 
 - Kafka(75) 
  
- 不支持延迟消息
 - 吞吐量大,适用于数据量很大的场景,比如:日志收集
 
 
Redis客户端
- Ridisson(98)
 - RedisTemplate(80)
 - Jedis(60)
 
ElasticSearch客户端
- Spring Data ElasticSearch(95)
 - bboss-elasticsearch(75)
 - elasticsearch-sql(60)
 
链路追踪
- SkyWalking(90)
 - Zipkin(80)
 - Cat(60)
 
接口文档工具
- knife4j(90)
 - swagger(75)
 - apidoc(60)
 
工具类
工具类优先使用Spring自带的(稳定、基本没bug)。Spring自带的工具基本都够用,非必要不要用其他乱七八糟的工具类(不稳定、bug多)。
JSON工具
- Jackson(99) 
  
- Spring自带,效率和稳定性都很好
 
 - FastJson(60) 
  
- bug多,经常爆出问题
 
 - gson(50) 
  
- 不流行
 
 
HTTP客户端
- RestTemplate(95) 
  
- 优点:Spring自带,稳定性好。
 - 缺点:只能用于Spring的Web项目(gateway也可以),不能用于其他项目。
 
 - Okhttp(85) 
  
- 优点:稳定,性能好
 - 缺点:易用性略低于RestTemplate;代码是Kotlin写的,不是Java。
 
 - HttpClient(80) 
  
- 有点:稳定,性能好
 - 缺点:易用性较差。
 
 - HttpRequest(70) 
  
- 优点:hutool的,灵活性不错
 - 缺点:hutool的东西,bug多;底层基于HttpUrlConnection,性能差。
 
 
String工具
- Spring自带的StringUtils(95) 
  
- Spring自带,稳定性好
 
 - Apache的StringUtil(90) 
  
- 稳定,但版本略复杂。
 
 - Hutool的(70) 
  
- 不推荐!
 
 
到此这篇java后端开发主要做什么的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hdkf/3819.html