2021Java程序员最常用技术栈和工具集合(建议收藏)老炮说Java

作为一枚Java程序员,需要掌握哪些技术和工具才能完成一个JavaWeb项目呢?今天罗列一些常用技术和工具,这些技术都是我这10年工作中用的比较多的,我知道技术栈远不止这些,本人只列自己熟悉和用的最多的,完成一个项目绝对够用了。说这么多技术不是让大家都要熟悉,有些太老的现在也用的少了甚至不用了,本人主要结合我这10年开发经验告诉大家JavaWeb的常用技术栈。

下面这张是技术栈思维导图:

什么是技术栈?举个例子:开发一个普通管理系统,会用到SprinBoot+MyBatis+Spring+Mysql+Redis+RabbitMq+Nginx+Vue+Shiro+html+等等,这些技术合起来就可以称为技术栈。

我将技术栈大致分为5大块:前端、后端、中间件、数据库和工具。

JSP全称JavaServerPages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。

JSP本质上是一个servlet,主要用于实现Javaweb应用程序的用户界面部分。

第一个JSP程序<%out.println("HelloWorld!");%>JSP这种网页技术我猜5年以下的程序员基本没接触过,10年前我接触的项目前端基本都是采用的JSP技术,jsp配合各种html+jquery/JavaScript+css完成前端页面开发。

DWZ、EasyUI、EXT、BootStrap、KendoUI都是基于基于HTML、CSS、JavaScript/jquery的一些富文本客户端UI框架,在当时简直是后端开发人员的福音。这些框架最大的特点就是官网上提供了各种组件的使用方法,后端人员只要套到JSP页面中,进行数据渲染即可。这些UI框架风格基本已经固定,更适合开发一些管理类系统,都包括:强大的数据源,通用的拖拉(Drag-and-Drop)功能,模板,和UI控件。

是中国人自己开发的基于jQuery实现的AjaxRIA开源框架,设计目标是简单实用,快速开发,降低ajax开发成本。

ExtJS是基于YUI(雅虎用户界面)的sencha的JavaScript框架和产品,它基本上是具有现代UI的桌面应用程序开发平台。

bootstrap是Twitter推出的一个用于前端开发的开源工具包

是一套JavaScript函式库,提供抽象化、可自订主题的GUI控制项与动画效果。基于jQueryJavaScript函式库,可用来建构互动式的Web应用

FreeMarker是一个免费的模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写的,用来生成HTMLWeb页面,特别是基于MVC模式的应用程序。通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图)

FreeMarker不是一个Web应用框架,FreeMarker与容器无关,也可以在模板中使用JSP标记库。

在底层的实现上,Vue将模板编译成虚拟DOM渲染函数。结合响应系统,Vue能够智能地计算出最少需要重新渲染多少组件,并把DOM操作次数减到最少。

VUE+elementUI目前使用最多的,尤其是开发一些后台管理系统还是比较简单便捷的。

servlet是ServerApplet的简称,翻译过来就是服务程序,简单的讲就是是运行在服务器上的一个小程序,用来处理服务器请求的。我们通过浏览器访问一个应用,在这个过程中,我们的浏览器发送访问请求,服务器接收请求,并对浏览器的请求作出相应的处理,这就是我们熟悉的B/S模型(浏览器-服务器模型).而servlet就是对请求作出处理的组件,运行于支持Java的应用服务器中。如图如是:

struts主要是指struts1和struts2,是经典的MVC框架,除去一些老项目,现在用的越来越少了。但struts1和struts2还是有区别的,主要区别二者本质不一样。

struts1:通过采用JavaServlet/JSP技术,实现了基于JavaEEWeb应用的Model-View-Controller(MVC)设计模式的应用框架,是MVC经典设计模式中的一个经典产品。

struts2:以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。

最经典的组合strutsMVC+SPring+Hibernate,号称SSH,当年都是面试必问的技术。

Spring框架是一个开源Java应用框架,解决了开发者在开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及WebMVC等功能。Spring可以单独应用于应用程序,也可以和Struts、Webwork等众多Web框架组合使用。Spring框架主要由七部分组成,分别是SpringCore、SpringAOP、SpringORM、SpringDAO、SpringContext、SpringWeb和SpringWebMVC。

JDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

iBATIS目前提供了三种语言实现的版本,包括:Java、.NET以及Ruby。

MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis。

MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。

Mybatis增强工具包-只做增强不做改变,简化CRUD操作

JPA是JavaPersistenceAPI的简称,中文名Java持久层API,是JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

Sun引入新的JPAORM规范出于两个原因:其一,简化现有JavaEE和JavaSE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。

SpringBoot是由Pivotal团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。它基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。

SpringCloud为开发者提供了在分布式系统(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性Token、全局锁、决策竞选、分布式会话和集群状态)操作的开发工具。使用SpringCloud开发者可以快速实现上述这些模式。

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。

主要核心部件:

Remoting:网络通信框架,实现了sync-over-async和request-response消息机制

RPC:一个远程过程调用的抽象,支持负载均衡、容灾和集群功能

Registry:服务目录框架用于服务的注册和服务事件发布和订阅

SpringCloudAlibaba致力于提供分布式应用服务开发的一站式解决方案。此项目包含开发分布式应用服务的必需组件,方便开发者通过SpringCloud编程模型轻松使用这些组件来开发分布式应用服务。

依托SpringCloudAlibaba,您只需要添加一些注解和少量配置,就可以将SpringCloud应用接入阿里分布式应用解决方案,通过阿里中间件来迅速搭建分布式应用系统。

ApacheShiro是Java的一个安全框架。目前,使用ApacheShiro的人越来越多,因为它相当简单,对比SpringSecurity,可能没有SpringSecurity做的功能强大,但是在实际工作时可能并不需要那么复杂的东西,所以使用小而简单的Shiro就足够了。对于它俩到底哪个好,这个不必纠结,能更简单的解决项目问题就好了。

OAuth2.0是目前比较流行的做法,它率先被Google,Yahoo,Microsoft,Facebook等使用。之所以标注为2.0,是因为最初有一个1.0协议,但这个1.0协议被弄得太复杂,易用性差,所以没有得到普及。2.0是一个新的设计,协议简单清晰,但它并不兼容1.0,可以说与1.0没什么关系。

Maven是Apache下的一个纯Java开发的开源项目。利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。是一个项目管理工具,可以对Java项目进行构建、依赖管理。

ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。在实际软件开发中,有很多地方可以用到ant。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选

Apache(阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一

Jetty是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。

WebLogicServer是专门为企业电子商务应用系统开发的。企业电子商务应用系统需要快速开发,并要求服务器端组件具有良好的灵活性和安全性,同时还要支持关键任务所必需的扩展、性能、和高可用性。WebLogicServer简化了可移植及可扩展的应用系统的开发,并为其它应用系统和系统提供了丰富的互操作性。

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like协议下发行。其特点是占有内存少,并发能力强。

缓存是现在系统中必不可少的模块,并且已经成为了高并发高性能架构的一个关键组件。缓存的主要作用:提升性能和缓解数据库压力,

Redis是一个开源的内存数据结构存储,用作数据库、缓存和消息代理。提供诸如字符串、哈希、列表、集合、带范围查询的排序集合、位图、超日志、地理空间索引和流等数据结构。具有内置的复制、Lua脚本、LRU逐出、事务和不同级别的磁盘持久性,并通过RedisSentinel和RedisCluster的自动分区提供高可用性。

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统,用来提高Web应用扩展性的重要因素。是一个基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。简洁而强大,它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

差异性我就不多说了,简单说下他们的使用场景:

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTfulweb接口

es基本是开箱即用,非常简单,Solr略微复杂。

Solr支持更多格式的数据,比如JSON、XML、CSV,而Elasticsearch仅支持json文件格式。

Solr查询快,但更新索引时慢(即插入删除慢),ES建立索引快(即查询慢),即实时性查询快。

说定定时任务大家可能都接触过,例如Spring自带的定时任务SpringTask,但是SpringTask是存在很多问题的,例如:最致命的一个问题就是一旦定时抛出异常,生命就结束,下一次不会再执行。复杂业务中使用起来是不方便的,这里推荐两个定时任务框架Quartz和xx-job,第三方的功能比较强大,好用。

Quartz是OpenSymphony开源组织在Jobscheduling领域又一个开源项目,完全由Java开发,可以用来执行定时任务,类似于java.util.Timer。但是相较于Timer,Quartz增加了很多功能:

XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

目前已有多家公司接入xxl-job,包括比较知名的大众点评,京东,优信二手车,北京尚德,360金融(360),联想集团(联想),易信(网易)等等....Quartz作为开源作业调度中的佼佼者,是作业调度的首选

Quartz在集群环境下只能通过API的方式对任务管理,同时,系统侵入性相当严重,而XX-JOB可以完美解决集群下任务额管理。所以,可以根据自己业务情况选择合适定时任务框架,

什么是配置中心?

集中将应用系统中对配置信息的管理作为一个新的应用功能模块,区别与传统的配置信息分散到系统各个角落方式,进行集中统一管理,并且提供额外功能。尤其是在微服务架构中,是不可或缺组件,甚至是必要组件之一。

为什么要使用配置中心?

在微服务体系中,服务的数量以及配置信息的日益增多,比如各种服务器参数配置、各种数据库访问参数配置、各种环境下应用配置信息的不同、配置信息修改之后实时生效等等,传统的配置文件方式或者将配置信息存放于数据库中的方式已无法满足开发人员对配置管理的要求。常见的配置中心中间件有:SpringCloudConfig,Nacos,apollo等。

2014年9月开源,SpringCloud生态组件,可以和SpringCloud体系无缝整合,SpringCloudConfig支持通过/bus/refresh端点的destination参数来指定要更新配置的机器,不过整个流程不够自动化和体系化。相对于Apollo和Nacos还是比较弱的。

2018年6月,阿里开源的配置中心,也可以做DNS和RPC的服务发现。Nacos使用起来相对比较简洁,在对性能要求比较高的大规模场景更适合。此外,Nacos除了提供配置中心的功能,还提供了动态服务发现、服务共享与管理的功能,降低了服务化改造过程中的难度。

2016年5月,携程开源的配置管理中心,具备规范的权限、流程治理等特性,Apollo可以直接在控制台上点灰度发布指定发布机器的IP,接着再全量发布,做得比较体系化。

核心功能:Apollo和Nacos相对于SpringCloudConfig的生态支持更广

实时推送:Nacos和Apollo在配置实时推送链路上是比较简单高效的,SpringCloudConfig比较复杂。

高可用部署:Nacos的部署结构比较简单,运维成本较低。Apollo部署组件较多,运维成本比Nacos高。SpringCloudConfig生产高可用的成本最高。

服务器监控是实时掌握服务器工作状态,并在需要时可以随时调用监控记录进行查看。

我知道Druid更多的用途就是连接池,其实他还有一个对SQL监控功能。

Skywalking是由国内开源爱好者吴晟(原OneAPM工程师,目前在华为)开源并提交到Apache孵化器的产品,它同时吸收了Zipkin/Pinpoint/CAT的设计思路,支持非侵入式埋点。是一款基于分布式跟踪的应用程序性能监控系统。另外社区还发展出了一个叫OpenTracing的组织,旨在推进调用链监控的一些规范和标准工作。

Mycat是一个开源数据库中间件,是一个实现了MySQL协议的的数据库中间件服务器,我们可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问Mycat,而Mycat再使用用MySQL原生(Native)协议与多个MySQL服务器通信,也可以用JDBC协议与大多数主流数据库服务器通信,包括SQLServer、Oracle、DB2、PostgreSQL等主流数据库,也支持MongoDB这种新型NoSQL方式的存储,未来还会支持更多类型的存储;一般地,Mycat主要用于代理MySQL数据库,虽然它也支持去访问其他类型的数据库;

我们先看官网的介绍

canal,译意为水道/管道/沟渠,主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费。

这句介绍有几个关键字:增量日志,增量数据订阅和消费。

这里我们可以简单地把canal理解为一个用来同步增量数据的一个工具。

接下来我们看一张官网提供的示意图:

定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。

主要功能

ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

这个事务更多指的是分布式事务处理插件。

ApacheShardingSphere(Incubator)是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(规划中)这3款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。

Seata是SimpleExtensibleAutonomousTransactionArchitecture的简写,由feascar改名而来。是阿里开源的分布式事务框架,属于二阶段提交模式。

消息队列是一个存放消息的容器,当我们需要使用消息的时候可以取出消息供自己使用。消息队列是分布式系统中重要的组件,使用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前使用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ。

2.降低系统耦合性;

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

AMQP,即AdvancedMessageQueuingProtocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

ActiveMQ是一种开源的基于JMS(JavaMessageServie)规范的一种消息中间件的实现,ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。

该数据库主要是指关系型数据库,是按照数据结构来组织、存储和管理数据的仓库,数据库是存放数据的仓库,是一个系统或者软件必不可少的一部分。每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

所以,现在我们使用关系型数据库管理系统来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

关系数据库管理系统的特点:

常见的数据管理系统主要有:oracle、mysql、SQLServer、access、TiDB。

OracleDatabase,简称Oracle。Oracle数据库系统是美国Oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(client/server)的数据库之一。Oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系型数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能,但它的所有知识,只要在一种机型上学习了Oracle知识,便能在各种类型的机器上使用它。

MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(RelationalDatabaseManagementSystem:关系数据库管理系统)应用软件之一。目前也是Oracle公司来托管。

美国Microsoft公司推出的一种关系型数据库系统。SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。

Access是微软把数据库引擎的图形用户界面和软件开发工具结合在一起的一个数据库管理系统。它是微软OFFICE的一个成员,在包括专业版和更高版本的office版本里面被单独出售。

TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理(HybridTransactionalandAnalyticalProcessing,HTAP)的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时HTAP、云原生的分布式数据库、兼容MySQL5.7协议和MySQL生态等重要特性。目标是为用户提供一站式OLTP(OnlineTransactionalProcessing)、OLAP(OnlineAnalyticalProcessing)、HTAP解决方案。TiDB适合高可用、强一致要求较高、数据规模较大等各种应用场景。

上面这几个数据库优缺点都比较明显,不在啰嗦了,大家在工作中可以根据自己实际情况选择合适的数据。

IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。

Eclipse是一个开放源代码的、基于Java的可扩展开发平台,是Java的集成开发环境(IDE),当然Eclipse也可以作为其他开发语言的集成开发环境,如C,C++,PHP,和Ruby等。

MyEclipse,是在Eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、JavaEE以及移动应用的开发。在最新版本的MyEclipse中,配合CodeMix使用支持也十分广泛,尤其是对各种开源产品和主流开发框架的支持相当不错。目前已支持PHP、Python、Vue、Angular、React、Java、JavaEE等语言和框架开发。

这三款工具好坏我也不做任何评价,每个工具用户都不少,我周围IntelliJIDEA和MyEclipse都有,我个人比较喜欢用IntelliJIDEA。

常见的版本空间工具svn和git

Git是用于Linux内核开发的版本控制工具。与常用的版本控制工具Subversion不同,它采用了分布式版本库的方式,不必服务器端软件支持,代码的发布和交流极其方便。Git的速度很快,这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(mergetracing)能力。

SVN的特点是简单,只是需要一个放代码的地方时用是OK的。

Git的特点版本控制可以不依赖网络做任何事情,对分支和合并有更好的支持(这应该算是开发者最关心的地方)。

Navicat是一套快速、可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设。它的设计符合数据库管理员、开发人员及中小企业的需要。Navicat是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建、组织、访问并共用信息。

PL/SQLDeveloper是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(ProceduralLanguage/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算,PL/SQL只有Oracle数据库有。

RedisDesktopManager是一款windows平台下的可视化redis数据库桌面管理工具,使用它你可以查看、删除、修改你的redis数据库数据!

XShell是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及MicrosoftWindows平台的TELNET协议。XShell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。

宝塔面板是一个可以安装在服务器上的集成环境,并配套了web管理面板,可以在浏览器上直接控制你的服务器,非常方便。可以一键创建网站、FTP、数据库、SSL;安全管理,计划任务,文件管理,PHP多版本共存及切换;自带基础网站环境,支持windows系统(apache)和linux系统(apache或nginx)。

SecureCRT是一款SSH客户端软件,通过使用内含的VCP命令行程序可以进行加密文件的传输。

Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。

Typora+PicGo,最好用的Markdown+最好用的图床工具!如果写博客的可以收藏起来。

Notepad++中文版是程序员必备的文本编辑器,Notepad++中文版小巧高效,支持27种编程语言,通吃C,C++,Java,C#,XML,HTML,PHP,JS等,Notepad++中文版编辑器可完美地取代微软的记事本。

OfficeVisio是Office软件系列中的负责绘制流程图和示意图的软件,是一款便于IT和商务人员就复杂信息、系统和流程进行可视化处理、分析和交流的软件。使用具有专业外观的OfficeVisio图表,可以促进对系统和流程的了解,深入了解复杂信息并利用这些知识做出更好的业务决策。常见软件架构、流程图都可以在里面完成。

ProcessOn是一个在线作图工具的聚合平台,它可以在线画流程图、思维导图、UI原型图、UML、网络拓扑图、组织结构图等等,您无需担心下载和更新的问题,不管Mac还是Windows,一个浏览器就可以随时随地的发挥创意,规划工作。

owerDesigner是一款非常全面的数据库设计工具。使用PowerDesigner可以快速创建表,支持表与表之间建立关系,界面简洁,功能强大。同时支持将sql脚本导出,多种导出类型任意挑选,简单实用。

XMind是一个全功能的思维导图和头脑风暴软件,为激发灵感和创意而生。作为一款有效提升工作和生活效率的生产力工具,受到全球百千万用户的青睐。

说到iReport不得不先介绍Jasperreport,Jasperreport是一个报表制作程序,用户需要按照它制定的规则编写一个XML文件,然后得到用户需要输出的格式文件。它支持输出的文件格式包括PDF,HTML,XML,XLS,CVS等等。而iReport就是一个制作Jasperreport的XML文件的可视化开发工具。

GoogleChrome是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

搜狗浏览器由搜狗公司开发,基于谷歌chromium内核,力求为用户提供跨终端无缝使用体验,让上网更简单、网页阅读更流畅的浏览器。

MozillaFirefox,中文俗称“火狐”,是一个由Mozilla开发的自由及开放源代码的网页浏览器。其使用Gecko排版引擎,支持多种操作系统,如Windows、macOS及GNU/Linux等

InternetExplorer(简称:IE)是微软公司微软公司推出的一款网页浏览器。原称MicrosoftInternetExplorer(6版本以前)和WindowsInternetExplorer(7、8、9、10、11版本)。在IE7以前,中文直译为“网络探路者”,但在IE7以后官方便直接俗称"IE浏览器"。

JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。它可以用于测试静态和动态资源,例如静态文件、Java服务程序、CGI脚本、Java对象、数据库,等等。

apachebench简称ab,它是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。

THE END
1.JavaWeb的学习笔记念安老师javaweb资料2、JavaWeb的技术栈 前端技术:HTML,CSS,JavaScript用于构建用户界面 HTML是网页的基础结构 CSS用于美化页面的外观 JavaScript为网页添加了互动性 后端技术 Java编程语言,具有强大的面向对象特性,跨平台性和丰富的类库 Servlet和jsp是构建动态页面的核心技术 Servlet是运行在服务器端的Java程序,用于处理客户端的请求并相应https://blog.csdn.net/2301_77140685/article/details/144401716
2.你们常用的Web开发工具都有什么?分享我常用的5大Web开发工具从他们的UI,我可以执行所有工作,从运行,可视化和调试我的代码和测试,到出色的git集成,重构等。它甚至还可以让我的设置和插件跨设备同步。它对我来说真是太神奇了。 公平地说,我还尝试了Sublime或VS Code之类的其他工具,对Sublime或VS Code印象不深。我看到许多人非常喜欢它,而且它是免费的和开源的,但是,它对于https://www.528045.com/article/193c9fe0bb.html
3.JAVA保姆式上手教程之JAVAWEBday01js基础JAVA保姆式上手教程之JAVAWEB day01-js基础 JavaScript概述 JavaScript简介 一门客户端脚本语言,运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎,不需要编译,直接就可以被浏览器解析执行了 javaScript的发展史 **起源:**上世纪末1995年时,Netscape(网景)公司推出Navigator浏览器。发布后用的人不多,这https://cloud.tencent.com/developer/article/2476651
4.不借助工具,自己编写javaweb项目如何编译部署,运行从学习java开始基本上都是用eclipse编写java代码,然后再tomcat运行。感觉自己除了会写些代码,其他的基本原理都不是很清楚。如果是自己用基础文本工具开发的话,非常吃力。 想想既然学这些东西,就要搞明白这些内在的一些基本原理。 如何编译自己的javaWeb项目代码,如何加载附加的jar包,总之要弄懂eclipse帮我们做了哪些事情,https://www.iteye.com/problems/90669
5.基于javaweb+jsp实现企业车辆管理系统JSP编程这篇文章主要为大家详细介绍了javaweb+jsp实现企业车辆管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下+ 目录 GPT4.0+Midjourney绘画+国内大模型 会员永久免费使用!【 如果你想靠AI翻身,你先需要一个靠谱的工具!】 运行环境 Java≥6、Tomcat≥7.0、MySQL≥5.5 开发工具 ideahttps://www.jb51.net/article/230346.htm
6.基于java文件管理系统javaweb文件管理系统开发语言:Java语言 前端技术:layui+HTML、CSS、JS、JQuery等 后端技术:JSP、servlet框架 运行环境:Windows7或10、JDK1.8 运行工具:本系统采用Eclipse开发,仅支持Eclipse运行,不支持MyEclipse和IDEA运行,因为三者的骨架不一样,强行导入打开运行可能会导致出现未知的错误。(如若想用idea运行,需要转换!!!) 数https://blog.51cto.com/u_16099303/11751470
7.JavaOracle现在就开始使用 Javahttp://www.java.com/
8.Java在线运行,Java在线编译,在线java编程Java教程 - Java在线运行,Java在线编译,在线java编程http://java.jsrun.net/
9.Java性能监控工具java监控系统–ApplicationsManager使用Application Manager Java性能监控工具能够深入到所有Java应用内部完成应用性能管理和监控,同时可以帮您完成Java性能测试分析等工作,java监控系统支持所有Java框架、JVM性能、Java错误、JavaBean性能、JBoss性能、JSP性能, Java监控能够实现从前端到网络直到后端服务https://www.manageengine.cn/products/applications_manager/java-transaction-monitoring.html
10.JavaWeb程序设计完整版课件ppt教程全套.ppt模块6 Java Web高级开发 Java Web 程序设计 “十二五”职业教育国家规划教材配套资源 目录 项目17 利用工具创建并部署Servlet 项目18 用Servlet实现用户注册 项目19 用Servlet实现用户登录 项目20 用户权限控制 项目21 用EL遍历数据 项目22 用EL简化JSP开发 小结 习题 项目17 利用工具创建并部署Servlet 17.1 项目描述https://max.book118.com/html/2021/0715/6154214153003213.shtm
11.java运行环境下载,java下载安装教程jsp运行环境的安装和配置 JSP(JavaServerPages)是一种动态网页技术,它允许开发者将Java代码嵌入到HTML页面中。要运行JSP页面,你需要一个支持Java的Web服务器,通常是ApacheTomcat。以下是安装和配置ApacheTomcat作为JSP运行环境的基本步骤: ###安装Java开发工具包(JDK) 1.**下载JDK**: -访问Oracle官网或其他Java发行https://www.pinunu.com/cltf/javayxhjxa.html
12.Adobe:Creative,marketinganddocumentmanagementsolutionsAdobe is changing the world through digital experiences. We help our customers create, deliver and optimize content and applications.https://adobe.com/
13.软件工程专业培养方案(2022)4.软件工程专业知识。软件工程概论、UML建模、Java EE编程、Java EE框架技术、软件项目管理与案例分析、软件测试技术等。 5.工具性知识。掌握数学、外语、计算机与信息技术应用、社会调查与研究方法、专业论文写作等知识。 6.法律与管理知识。掌握从事软件工程专业所需的法律、法规、标准及工程管理、经济决策知识。 https://www.csust.edu.cn/jtxy/info/1302/20908.htm
14.企业Java网站开发工具Java开发语言与工具·Eclipse计划:本身包括Eclipse平台,Eclipse富客户端平台(RCP)和Java开发工具(JDT)。 ·Eclipse测试和性能工具平台(TPTP):提供一个允许软件开发者构建诸如测试调试、概况分析、基准评测等测试和性能工具的平台。 ·Eclipse Web工具平台计划(WTP):用 Java企业版Web应用程序开发工具来扩展Eclipse平台。它由以下部分组成:HTMLhttps://www.open-open.com/lib/view/open1366463556406.html
15.我喜欢的10款常用Java测试工具Httpunit是一种基于Junit的开源测试工具,主要关注测试Web应用程序,解决使用Junit框架无法测试远程Web内容的缺点。 Httpunit提供的帮助允许测试人员通过Java与服务器交互,并将服务器端的响应作为文本或DOM对象进行处理。Httpunit还提供了一个模拟Servlet容器,允许测试者在不发布Servlet的情况下测试Servlet的内部代码。在本文中https://www.tulingxueyuan.cn/tlzx/jsp/2630.html
16.JWt首页文档和下载Java的Web工具包OSCHINAJWt (Java Web Toolkit) 是一个用来开发交互式 Web 应用的 Java 工具包,参考桌面 GUI 的做法,主要面向网页 Widget 的开发。对开发人员而言,它提供了完整的 Web 规范的抽象层,基于事件机制对用户接口的数据更新进行处理。 演示地址: Hello World 报表和图表 https://www.oschina.net/p/jwt
17.Azure上的JavaAzure 上的 Java 学习路径 了解如何使用 Azure 服务和熟悉的 Java 开发工具与框架在 Azure 上生成、迁移和缩放 Java 应用程序。 在Microsoft Learn 上开始 将Java Web 应用部署到 Azure 应用服务 了解如何在 Azure 应用服务上部署和配置 Java Web 应用。你需要创建并打包 Java Web 应用,并将 Maven 插件用于要部https://azure.microsoft.com/zh-cn/resources/developers/java/