登录 / 注册
必看系列之Java开发工具推荐
发布时间:2023-09-07 11:15:03 查看:922

在当今时代,有很多编程语言可能会塑造我们的未来。然而,当我们开始学习编程时,我们总是从C语言开始,然后转到C++或许多其它编程语言中的一种。

今天给大家分享的是为人熟知的Java编程语言中的工具使用。Java编程语言的普及可以归因于它的多功能性,因为它可以用来设计轻量级和快速的定制应用程序,并且能够服务于各种各样的目的。

Java编程语言是如此深受欢迎,以至于常年在TIOBE编程语言流行度排行榜中位列前三,几乎每个公司都在使用Java,无论是那些小公司,还是像谷歌,亚马逊那样的大型科技巨头。

并且最近几年,Java 的技术栈发展的非常快,成百上千的技术工具正不断地涌出来,这也造成了一个问题:到底应该选哪些工具搭建出最合适的技术栈呢?

一、项目工具

1.1 IDE

主流的 Java 开发工具现在非 IntelliJ IDEA 莫属。前几年,可能 Eclipse 还能和 IDEA 一争高下,到了现在已经基本是 IDEA 的天下了。

如果你问我用 IDEA 到底哪最爽,我觉得有 3 点:

  1. 代码智能提示,爽!

  2. 代码自动生成,爽!

  3. 代码调试,爽!

而这 3 点,恰恰就是能极大提高程序员开发效率的 3 点。

1.2 版本管理工具

对于项目中的代码版本管理工具,Git 已经处于垄断地位了,新项目的话不需要再考虑 SVN、CVS了。

之所以 Git 现在处于垄断地位,主要胜在 2 点:

  1. Git 是分布式的,不会因为版本管理服务器崩溃导致完整的代码历史版本丢失。

  2. Git 创建分支是非常廉价的操作,可以随意创建分支,从而使并行开发很容易落地。而 SVN、CVS 这些版本管理工具创建分支则非常笨拙,并行开发非常麻烦。

1.3 构建工具

Java 项目的构建工具现在是龙争虎斗,业内一般有两个选择:Maven 和 Gradle。

如果是后端的 Java 项目,那绝大部分用的还是 Maven 去构建项目。如果是前端的 Android 项目,则选择 Gradle。

Gradle 本身要比 Maven 先进很多:它配置灵活,性能优秀,真的是个非常优秀的构建工具。

二、开发框架

2.1 Web 框架

现在的 Web 项目开发,大部分都转向了 SpringBoot 了。

使用 SpringBoot 有三个最大的好处:

  1. 配置非常少,可以说是即插即用

  2. 基于 Spring 构建,入手门槛非常低

  3. 直接运行,不需要再考虑 Web 容器的问题

2.2 持久层框架

项目开发中用到的持久层框架,基本有两类:

Mybatis 系列衍生框架

JPA 系列衍生框架

在国内来讲,大部分持久层框架还是首选 Mybatis,貌似在国外大部分项目是用的 JPA 框架。

2.3 RPC 框架

现在 Java 项目的架构,基本都在转向分布式架构。分布式系统的整合,核心就是 RPC,因此很多项目中都引入了 RPC 框架。

RPC 框架,现在用得比较多的是 Dubbo 框架。

三、中间件

3.1 Web 服务器

现在的 Java 开发,由于大部分使用了 SpringBoot,所以以前大家常用的 Tomcat、Jetty、Resin 等 Web 容器都不怎么单独部署使用了。

但是,有一个 Web 容器反而还愈加兴旺起来,这就是 Nginx。

Nginx 在 Java 项目开发里,地位是非常特殊的。它在 Java 项目架构里起到了两个作用:

  1. 处理静态资源请求的web容器——Nginx 在 Java 项目中,专门负责处理对图片、html、js、css等这类静态资源的 Http 请求。

  2. 反向代理做分发——除了做专门处理静态资源请求的 Web 容器之外,Nginx 同时还会把对 servlet、controller 等这些动态资源的请求,转发给后面的 SpringBoot 中内置的 Tomcat 容器。

反向代理这个特性,Nginx 后面会被部署上集群,Nginx 在转发请求的时候,同时也会做负载均衡的请求分发的反向代理。

3.2 消息队列

如今,做架构越来越趋向分布式架构。分布式架构里,常用的通信手段,除了网络请求,就是消息队列了。

现在主流的消息队列框架有 RabbitMQ、RocketMQ、Kafka 等。

RabbitMQ 性能虽然低一些,但是容易上手,更适合用在中小项目。

  1. RabbitMQ 是 AMQP 协议的实现,而 AMQP 协议本身就是来自于金融行业的软件专家们联手制定的,非常成熟和全面,已经成了工业标准。

  2. RabbitMQ 是 Erlang 写的,Erlang 的虚拟机对内存和 CPU 过载的保护非常成熟,也因此塑造了 Erlang 应用本身的可靠和健壮。

大项目、非金融项目,大家可以在 RocketMQ、Kafka 这两者之间选择。

RocketMQ 和 Kafka 差不多 90% 的功能和概念都是相通的,只是 RocketMQ 在 Kafka 理念的基础上做了一些改进,更适用的业务场景也更广泛。

在流数据处理上,大家应该优先考虑 Kafka,原因是 Kafka 的流数据处理生态更加的完善周全。

3.3 数据库

互联网领域,主流数据库就是MySQL。在一些传统行业,比如银行,Oracle 用得不少。

Oracle 贵,互联网项目的一个特点就是数据库服务器数量贼多,如果用 Oracle 的话,成本太高了。

而且大家越来越有版权意识,国家对这方面也抓得越来越紧,所以,在互联网领域几乎都在用 MySQL。

使用 MySQL,常见的有 MHA 方案——MySQL 的高可用方案,基本架构就是一主两从。当主机出故障了,从机就会被提升为主机。

3.4 外置缓存

对于高并发的架构,外置缓存不可或缺,其中最最最常见的就是 Redis。之所以大家都采用 Redis 做外置缓存,原因有三点:

  1. Redis 本身性能非常好。

  2. Redis 有很多数据结构去适配不同的业务缓存需求。

  3. Redis 的集群高可用方案和分片存储的高性能方案相对成熟。

以上,就是 Java 开发中经常遇到的主流技术工具了,赶紧收藏起来吧~

宁夏银川舜新艺软件开发
ShunXinyi Soft develop
主要经营
软件开发,网站制作,网页设计,移动应用(安卓、苹果),微信,微网站,
FLASH动画,电子商务,计算机软硬件及网络设备等。
电话:18695132945 QQ:23923027
舜新艺软件开发 宁ICP备16001093号-1 宁公网安备 64010602000809号