一、简介

本文介绍Java后端开发的技术选型。持续更新。
本文中的每一项都按照从上到下为从好到差的顺序排列技术栈

二、分布式框架

  • 说明
    现在新项目一般都用Spring Cloud Alibaba了。feign+nacos+sentinel,很舒服!

  • 评分

    • Spring Cloud Alibaba(95)
      优点:feign调用基于http,灵活;nacos和sentinel很好用
    • Spring Cloud原生(80)
      优点:feign调用基于http,灵活
      缺点:eureka已闭源,配置中心使用不方便
    • Dubbo(50)
      优点:基于长连接,比SpringCloud速度稍快一点儿
      缺点:不够灵活,且相关的组件很少

详细可参考我之前写的文章:Spring Cloud Alibaba 教程

三、分布式事务

  • Seata(95分)
    阿里开发,很流行

详细可参考我之前写的文章:Spring Cloud Alibaba 实战 Seata

四、分布式锁

  • Redisson(95分)
    续期、可重入等接近完美
  • Zookeeper(70分)
    用的比较少
  • MySQL(30分)
    效率很低

详细可参考我之前写的文章:Redisson分布式锁的使用(推荐使用)

五、分布式定时任务

  • XXL-JOB(90分)
    很流行;很好用
  • PowerJob(80分)
  • 流行度低;使用体验略差
  • Quartz(50分)
    难用;
  • Spring自带(30分)
    无可视化页面

详细可参考我之前写的技术选型文章:Java 定时任务

六、MQ

  • RocketMQ(95)
  • RabbitMQ(85)
  • Kafka(70)

详细可参考我之前写的文章

七、持久层框架

  • 说明
    这几个框架我都用过。按开发速度来看,一个模块,如果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共同使用。
      缺点:开发速度慢

八、杂项

  • Redis客户端

    • Ridisson(98)
    • RedisTemplate(80)
    • Jedis(60)
  • 接口文档工具

    • knife4j(90)
    • swagger(75)
    • apidoc(60)
  • JSON工具

    • Jackson(99)
    • Spring自带,效率和稳定性都很好
    • FastJson(60)
      bug多,经常爆出问题
    • gson(50)
      不流行
  • HTTP客户端

    • RestTemplate(95)
    • Spring自带,稳定性好
    • HttpRequest(80)
    • hutool的,灵活性好
  • 持续集成

    • jenkins

详细可参考我之前写的文章:Jenkins详细教程

  • 其他
    • 属性映射:mapStruct
    • token管理:jwt
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐