Java开发常用技术栈盘点

1. 前言

最近很多人私下询问我常用的Java开发技术栈,所以今天就总结一波平常使用的Java技术栈。

2. JDK

JDK 的版本现在大部分转移到了8,超前一点的使用11,请认准LTS版本!不要生产上使用910121314。在Oracle JDKOpen JDK之间推荐使用Open JDK,避免引起不必要的商业纠纷。Amazon Corretto 、Alibaba Dragonwell 都不错。7 以上不用太考虑兼容问题,不过最好测试一波再迁移。

2. Web 框架

主流还是Servlet系列的Spring MVC为主。Structs应该只有老项目在用。响应式框架Spring Webflux开始进入视野,尝试的人、问的人逐渐多了起来。建议有志于抓住未来方向的同学了解一下。

3. Web 容器

目前应该还是Tomcat最多,但是近几年红帽的Undertow也起来了,Jetty实际生产并没有优势,测试可能会用。有能力的公司会选择Netty自行实现高性能的 Web 容器。

4. ORM 框架

现在Mybatis在国内依然是老大的地位,国外却很少有相关的教程。其次是JPA体系,主要包括Spring Data JPAHibernate。有兴趣的话可以去看一下JOOQ。随着响应式编程的兴起,JDBC开始出现了潜在的对手R2DBC,需要持续关注动向。

5. Spring

谈到Java离不开SpringSpring生态的统治地位依然不可动摇。目前单体应用还是Spring Boot一把梭,微服务Spring Cloud体系还是占绝对优势。但是你的项目真适合搞微服务吗?Spring近年来开始转向响应式,无论Webflux,还是R2DBC,以及更近的RSocket都是Spring官方力推的一些响应式框架或协议。所以响应式必须列入你的知识清单了。

6. 数据库

大部分还是Mysql、但是MSSQLPostgreSQL也用的不少。国产云原生数据库TiDB的发展也不可小视。作为文档数据库Mongo虽然过去两年爆出了一些安全问题,但是依然领导着这个领域。内存型数据库Redis依然在缓存领域占据重要的地位,MemcachedHazelcast 也经常出现在视野中。

7. 搜索引擎

在搜索引擎领域Lucene及其两个衍生品SolrElasticSearch占据绝对优势,ElasticSearch更加活跃一些。

8.后端模板引擎

在前后端分离已经流行的今天,模板引擎的生存空间再一次被压缩,目前我最多用它们来搞搞代码生成器。已经很少在使用它们了,FreemarkerVelocity Thymeleaf越来越少被提及了。

9. 工作流

常用的名气大的主要是ActivityFlowable

9. 其它语言无关的中间件

消息队列主要是KafkaRocketMQRabbitMQ,老牌ActiveMQ开始没落,Yahoo捐献给ApachePulsar不知道为什么没有像zookeeper一样买账的。Nginx依然是高性能Web服务器、代理服务器的首选。


这就是我对Java当前常用技术栈的一些看法和观点。如果你有不同的意见和补充请留言讨论,也欢迎转发让更多人看到。

往期推荐:

订阅发布模式到底是不是观察者模式?

2020-06-09

聊聊依赖注入注解@Resource和@Autowired

2020-06-06

                                                                                                      

  • 11
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java开发中,一些常见的技术包括: 1. Spring框架:Spring是一个非常流行的开发框架,提供了一系列的模块和组件,用于开发企业级Java应用程序。包括Spring MVC(用于Web开发)、Spring Boot(简化配置和部署)、Spring Data(数据访问)、Spring Security(安全管理)等。 2. Hibernate:Hibernate是一个对象关系映射(ORM)框架,它提供了将Java对象映射到关系数据库的功能。使用Hibernate,开发者可以通过简单的注解或XML配置来定义对象和数据库表之间的映射关系,从而简化了数据库操作的编写。 3. Maven或Gradle:Maven和Gradle是两个常用的构建工具,用于管理项目的依赖关系和构建过程。它们可以自动下载和管理项目所需的库和依赖,并提供了一系列命令和插件来编译、测试和打包项目。 4. MySQL或Oracle:MySQL和Oracle是两个常见的关系型数据库管理系统,在Java开发中广泛使用。它们提供了可靠和高性能的数据存储和检索功能,可以与Java应用程序无缝集成。 5. HTML/CSS/JavaScript:前端开发也是Java开发中常见的技术之一。HTML用于定义网页的结构,CSS用于定义网页的样式,JavaScript用于实现网页的交互和动态效果。在Java开发中,经常使用框架如Angular、React或Vue.js来简化前端开发。 6. RESTful API:REST(Representational State Transfer)是一种设计风格,用于构建可伸缩的、分布式的Web服务。在Java开发中,使用Spring MVC或JAX-RS等框架可以快速开发RESTful API,提供数据交互接口给前端或其他应用程序。 这只是一些常见的Java开发技术,根据具体的应用场景和需求,还可以使用其他相关技术和框架。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小胖哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值