震惊!!JAVA程序员尽然需要掌握这些框架!!

Java 程序员方向太多,且不说移动开发、大数据、区块链、人工智能这些,大部分 Java 程序员都是 Java Web/后端开发。 Java Web 开发程序员必须需要熟悉哪些框架呢?

以下给大家列举了一些通用的框架,必须掌握的框架,学会这些,20K+ 不是问题。

一. Spring

1.简介:

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

2.优点:

(1)JAVA EE应该更加容易使用。

(2)面向对象的设计比任何实现技术(比如JAVA EE)都重要。

(3)面向接口编程,而不是针对类编程。Spring将使用接口的复杂度降低到零。(面向接口编程有哪些复杂度?)

(4)代码应该易于测试。Spring框架会帮助你,使代码的测试更加简单。

(5)JavaBean提供了应用程序配置的最好方法。

(6)在Java中,已检查异常(Checked exception)被过度使用。框架不应该迫使你捕获不能恢复的异常

资源:

Spring框架

二. Spring MVC

1.简介:

SpringMVC框架是基于MVC模式,使用Java语言开发实现的一个轻量级 Web 框架。它是Spring家族中的一员,和Spring容器是同一个妈妈生的。

正因为这一点,通过简单的配置,就能够让SpringMVC框架和Spring容器一起使用。也就是说在基于Spring容器开发的Java web 项目中添加SpringMVC框架,就像给笔记本电脑加装一块固态硬盘。

2. 优点:

(1)SpringMVC框架提供了一整套完善的组件。

不同于以前框架只提供接口,然后让使用者自己根据接口写实现类来实现功能,SpringMVC提供了一整套完善的组件,可以直接使用。这就相当于以前的框架只给你提供设计图纸,你需要根据设计图纸自己把工具造出来,而现在SpringMVC直接给你一套现成的工具箱,里面有你用得到的各种工具。

而且使用SpringMVC框架提供这些工具也巨简单,通过一些简单的注解就搞定了,不需要编写繁琐冗长的代码,简直比夏天喝雪碧还要爽。

(2)SpringMVC是以强大的Spring容器为基础的框架。

如果同学你使用过Spring容器,那你一定知道Spring容器的对象托管功能有多么的好用。它不需要你自己去创建和释放对象,Spring容器帮你全搞定! 同样地,能够放入Spring容器里面的这个SpringMVC工具箱,里面各种工具类的管理也是不需要操心的。而这省心省力的优点,是其他框架都没有的。

(3)框架的配置简单又不失灵活性。

SpringMVC框架的常用配置项就已经涵盖了项目中80%的配置需求,简单的项目甚至可以做到零配置,拿过来就用。

(4)代码的可重用性很高。

翻译成大白话就是,一个成熟的,上线稳定运行过的SpringMVC项目,经过简单修改,甚至不用修改,就可以作为另一个新项目开发的基础。这样能在开发新项目时省很多力气。

(5)可扩展性好。

如果SpringMVC框架提供的工具不能100%满足你的需求,你需要定制开发,SpringMVC框架同样也提供了相应的接口,可以进行工具的升级。这样你在遇到强力精英怪的时候,照样能用SpringMVC框架打败它。

资源:

SpringMVC 框架

三. Spring Boot

1.简介:

Spring Boot 是 Spring 开源组织下的一个子项目,也是 Spring 组件一站式解决方案,主要是为了简化使用 Spring 框架的难度,简省繁重的配置。

Spring Boot提供了各种组件的启动器(starters),开发者只要能配置好对应组件参数,Spring Boot 就会自动配置,让开发者能快速搭建依赖于 Spring 组件的 Java 项目。

2.优点:

(1)配置变得简单了

(2).springboot内嵌了servlet容器,降低了对环境的要求,机器有java运行环境,可以将项目打包成jar包,通过java命令 java -jar ***.jar 来执行。

(3).快速整合第三方框架,无需配置文件

(4).解决了Spring的弊端

(5).代码少了、配置文件少了、不需要对第三方框架烦恼了、项目精简了,对整个团队的开发及维护来说,更大的节约了成本。

(6).使用Java或Groovy开发基于Spring的应用程序非常容易。

(7).它减少了大量的开发时间并提高了生产力。

(8).它避免了编写大量的样板代码,注释和XML配置。

(9).Spring Boot应用程序与其Spring生态系统(如Spring JDBC,Spring ORM,Spring Data,Spring Security等)集成非常容易。

资源:

Springboot 框架

四. Spring Cloud

1.简介:

Spring Cloud 是一系列框架的有序集合,是目前最火热的微服务框架首选,它利用Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。

2. 优点:

(1)、服务拆分粒度更细,有利于资源重复利用,有利于提高开发效率

(2)、可以更精准的制定优化服务方案,提高系统的可维护性

(3)、微服务架构采用去中心化思想,服务之间采用Restful等轻量级通讯,比ESB更轻量

(4)、适于互联网时代,产品迭代周期更短

资源:

SpringCloud 框架

五. Mybatis/ iBatis

1.简介:

iBatis 曾是开源软件组 Apache 推出的一种轻量级的对象关系映射持久层(ORM)框架,随着开发团队转投Google Code 旗下,ibatis 3.x 正式更名为 Mybatis,即:iBatis 2.x, MyBatis 3.x。

2.优点:

(1)、与JDBC相比,减少了50%以上的代码量。

(2)、MyBatis是最简单的持久化框架,小巧并且简单易学。

(3)、MyBatis灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,可重用。

(4)、 提供XML标签,支持编写动态SQL语句(XML中使用if, else)。

(5)、 提供映射标签,支持对象与数据库的ORM字段关系映射(在XML中配置映射关系,也可以使用注解)。

资源:

SpringBoot 框架

六. Dubbo

1.简介:

Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC 分布式服务框架,现已成为 Apache 基金会孵化项目。使用 Dubbo 可以将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,可用于提高业务复用灵活扩展,使前端应用能更快速的响应多变的市场需求。

2.优点:

(1).远程通讯:提供多种基于长连接的NIO框架进行封装,包括多种线程模型,序列化,以及请求相应模式的交换

(2).集群容错:提供基于接口方法的透明远程过程调用,包括多协议的支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持

(3).自动发现:基于注册中心目录服务,使服务消费方能够动态的查找服务的提供方,使地址透明,使服务提供方

资源:

Dubbo 框架


七. Shiro

1.简介:

Apache Shiro是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。

2.优点:

(1)简单的身份认证, 支持多种数据源
(2)对角色的简单的授权, 支持细粒度的授权(方法级) c、支持一级缓存,以提升应用程序的性能
(3)内置的基于 POJO 企业会话管理, 适用于 Web 以及非 Web 的环境e、非常简单的加密 API
(4)不跟任何的框架或者容器捆绑, 可以独立运行

资源:

shiro 框架

八. MongoDB

1. 简介:

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

2.优点:

(1) 面向集合存储,易存储对象类型的数据

(2) 模式自由

(3) 支持动态查询

(4) 支持完全索引,包含内部对象

(5) 支持查询

(6) 支持复制和故障恢复

(7) 使用高效的二进制数据存储,包括大型对象(如视频等)

(8) 自动处理碎片,以支持云计算层次的扩展性

(9) 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言

(10) 文件存储格式为BSON(一种JSON的扩展)

(11) 可通过网络访问

资源:

MongoDB 框架

九. JavaScript

1.简介:

JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有相对安全性的客户端脚本语言。同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(Netscape)的Brendan Eich设计,是一种动态、弱类型、基于原型的语言,内置支持类。

2. 优点:

(1).JavaScript减少网络传输。

在JavaScript这样的用户端脚本语言出现之前,传统的数据提交和验证工作均由用户端浏览器通过网络传输到服务器上进行。如果数据量很大,这对于网络和服务器的资源来说实在是一种无形的浪费。而使用JavaScript就可以在客户端进行数据验证。

(2).JavaScript方便操纵HTML对象。

JavaScript可以方便地操纵各种页面中的对象,用户可以使用JavaScript来控制页面中各个元素的外观、状态甚至运行方式,JavaScript可以根据用户的需要“定制”浏览器,从而使网页更加友好。

(3).JavaScript支持分布式运算。

JavaScript可以使多种任务仅在用户端就可以完成,而不需要网络和服务器的参与,从而支持分布式的运算和处理。

资源:

JavaScript 框架

十.java Swagger

1.简介:

Swagger是一款REST APIs文档生成工具。Swagger官方定义:

Swagger是一款开源工具,依据OpenAPI规范(OpenAPI Specification,简称OAS)可以帮助你设计,构建,生成文档,消费(调用)REST APIs。主要的工具包含:

Swagger Editor:基于web的一个工具,用于编写符合OpenAPI规范的模型

Swagger UI:用于展示REST APIs文档,并提供一些交互操作

Swagger Codegen: 依据OpenAPI规范来生成服务端和客户端代码

2.优点:

(1) .通过代码和注释自动生成文档。在Swagger框架下,开发人员可对服务进行归类说明,对方法,模型,返回结果等进行详细说明。方便开发人员在编写代码的同时,编写文档信息。自动生成,只需很少的编辑工作,就能获得完整的REST APIs文档

(2) .提供了UI界面。既展示接口信息,又提供了参数校验,测试功能

(3) . 形成了文档规范,支持不同的语言

(4) .提供丰富的组件。

资源:

java Swagger2框架

十一. SpringData

1.简介:

Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。 其主要目标是使得数据库的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。

2.优点:

简化了基于Spring框架应用的数据库访问,包括对关系型、非关系型、Map-Reduce、云数据服务等都支持,它具备ORM框架的对象关系映射的功能,提供统一的Repository接口实现CRUD、分页、排序等相关操作,也提供了统一的模板类。

资源:

SpringData 框架

十二.Hadoop

1.简介:

Hadoop 是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。 主要解决海量数据的存储和海量数据的分析计算问题。

2. 优点:

(1)、高可靠性

Hadoop按位存储和处理数据的能力值得人们信赖。

(2)、高扩展性

Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

(3)、高效性

Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

(4)、高容错性。

Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。Hadoop上的应用程序也可以使用其他语言编写,比如C++。

资源:

Hadoop 框架

十三.Flink

1.简介:

Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。Flink以数据并行和流水线方式执行任意流数据程序,Flink的流水线运行时系统可以执行批处理和流处理程序。此外,Flink的运行时本身也支持迭代算法的执行。

2.优点:

(1)同时支持高吞吐、低延迟、高性能;

Flink 是目前唯一能同时集高吞吐、低延迟、高性能三者于一身的分布式流式数据处理框架。Apache Spark 只有高吞吐、高性能。因为SparkStream 做不到低延迟,本质还是微批处理。Apache Storm 只有低延迟、高性能,但达不到高吞吐。

(2)支持事件事件(Event Time)概念

(3)支持有状态计算

(4)支持高度灵活的窗口(Window)操作

(5)基于轻量级分布式快照实现的容错

(6)基于JVM实现独立的内存管理

(7)Save Points的实现

资源:

Flink 框架

十四. MongoDB

1.简介:

MongoDB可以存储比较复杂的数据类型。

2.优点:

(1)MongoDB 的架构较少。它是一个文档数据库,它的一个集合持有不同的文档。

(2)从一个到另一个的文档的数量,内容和大小可能有差异。

(3)MongoDB 中单个对象的结构很清淅。

(4)MongoDB 中没有复杂的连接。

(6)MongoDB 提供深度查询的功能,因为它支持对文档的强大的动态查询。

(7)MongoDB 很容易扩展。

(8)它使用内部存储器来存储工作集,这是其快速访问的原因。

资源:

MongoDB 框架

当然还有些框架没有列举出来大家有什么补充也可以私信我,如果对你有用,麻烦点点赞。新课持续更新!

如果大家对java感兴趣的话想先初步了解并且学习的话

资源:

Java300集零基础适合初学者视频教程_

赶紧来白嫖吧,希望大家都可以有所收获

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值