在众多编程语言当中,java是目前软件开发中,应用比较广泛的编程语言。但是想要使用java开发软件,也是需要一些框架来作为支撑的。那么常用的java框架有哪些?目前仍然有许多Java框架。对工作中经常使用的框架的简要介绍主要分为两种。一种是框架本身是用Java语言开发的,另一种是用非Java语言开发的,但是它也经常被使用。
1.Spring
Spring 框架可以说是现在的老大哥,它提供了管理 Bean 对象的容器,省去了我们自己去 new 对象,只要通过简单的依赖注入就可以引入想使用的对象。这是 Spring 的核心功能之一的 IOC(控制反转),它的作用就是帮我们管理对象,省去了自己创建对象,而是由 Spring 来自动进行装配。
Spring 还提供了另一个核心功能 AOP(面向切面编程的思想),通过动态代理来实现对一些切面功能的处理来降低耦合,比如统一的异常处理、日志处理、权限校验等等。
可以说 Spring 是一个大生态,很多框架都能通过简单地配置和 Spring 共同使用,大大方便了我们进行开发。
2.Spring MVC
Spring MVC 是一个使用了 MVC 分层模式的 Web 框架,它底层其实就是一个 Servlet,接收并处理请求,然后返回响应。
MVC 分层架构主要分为
· Model 层是对应用程序数据的一个封装;
· View 层负责展示应用程序返回的数组;
· Contorller 层负责处理用户请求,并建立对应的模型,然后做渲染。
3.MyBatis
MyBatis 是一个对象关系映射(Object Relational Mapping)框架。它主要关注对象与数据库之间的映射,框架会屏蔽操作数据库的细节,然后把数据库返回的数据封装成对象,我们在应用中直接操作对象就行了。
但 MyBatis 需要自己手写 SQL,这既是缺点也是优点吧。说它是缺点是因为还需要我们自己写 SQL,优点呢就是我们可以对 SQL 进行定制化,比较自由。而且现在有很多插件可以实现对定义好的数据库自定义生成对应的 SQL,如果有自定义 SQL 的需求,只要在 XML 文件中修改就好。总之,它方便了我们对数据库的操作。
上面介绍的 Spring、Spring MVC、MyBatis 就是江湖大名鼎鼎的 SSM 框架。
4.Spring Boot
Spring Boot 是一个快速开发的框架,能够通过引入 Maven 依赖快速引入第三方框架,并且它通过引入大量的注解来简化 XML 的配置。现在很多公司都已经在用 Spring Boot 了。
5.Spring Cloud
Spring Cloud 为分布式系统提供完整的微服务框架,可以简单看下它提供的组件:
· Eureka:用于服务的注册发现;
· Ribbon/Feign:提供负载均衡;
· Hystrix:防止过载的断路器;
· Config:配置中心;
· Zuul:网关。
可见 Spring Cloud 对分布式系统提供了丰富的组件。
6.Dubbo
Dubbo 是一款开源的 RPC 远程调用框架。现在很多公司都在使用微服务、分布式架构,也就是由之前的单体应用拆分成多个服务,然后服务之间进行调用。为了使消费端对服务端的调用透明化,就有了 RPC 框架,很多公司都在使用 Dubbo 来搭建微服务。
Dubbo 使用 SPI 机制实现了插件的可插拔,你可以自由扩展它提供的功能。同时它还提供了丰富的协议支持、丰富的负载均衡策略。在最新的版本中,Dubbo 对异步调用也做了很好的支持。总之,Dubbo 是一款优秀的 RPC 框架。
7.Netty
Netty 是一个异步驱动的网络应用框架,用于快速开发可维护、高性能的服务器和客户端。很多 RPC 框架的的通信层都采用的是 Netty,上面介绍的 Dubbo 框架默认的 dubbo 协议就是采用 Netty 作为其通信框架。
Netty 的高性能取决于其 I/O 模型和线程模型。I/O 模型采用了 I/O 多路复用,虽然也是调用 select 方法,虽然会阻塞线程,但不会阻塞 I/O ,它会同时检查多个写和多个读,只有在有数据就绪时,才会调用真正的 I/O 操作。
Netty 还解决了粘包/拆包问题,还支持零拷贝等等。总之,Netty 是一个高性能的网络框架。
8.SkyWalking
SkyWalking 是一个 APM(Application Performance Management,应用性能管理) 框架,在微服务盛行的时代,它可以做到服务调用链路的追踪,是一个监控服务性能的利器。
SkyWalking 基于 OpenTracing 规范,Java 探针采用了字节码增强技术实现,对业务代码无侵入,而且社区非常活跃,支持多语言,是一款很好的 APM 框架。
9.ZooKeeper
ZooKeeper 是一个分布式协调框架,提供统一命名服务、配置管理、数据发布/订阅、负载均衡、分布式协调/通知、分布式锁等分布式的基础服务。ZooKeeper 采用了 ZAB 协议来解决分布式数据的一致性。在应用方面,Dubbo 的服务注册中心就是采用的 ZooKeeper,其用途也是非常广泛。
10.canal
canal 是由阿里开源的一款基于 MySQL 数据库增量日志解析的框架,主要提供增量数据订阅和消费。canal 的工作原理是模拟 MySQL slave 的交互协议,伪装自己是 MySQL 的 slave,向 master 发送 dump 协议,等 master 收到 dump 协议后,会把 binlog 日志传给 canal ,然后 canal 就可以解析 binlog 日志了。该框架一般用于同步 MySQL 的数据,现在还支持把消息发送到 Kafka 中,然后由使用方订阅 topic 进行消费。
11.Vert.x
Vert.x 是一款异步框架,基于 Netty 实现,通过事件循环(Event Loop)来调用存储在异步任务队列的任务,能够极大地提高系统的吞吐量,它还有一个特点是无锁化。
12.Elasticsearch
Elasticsearch 是一款分布式可扩展的实时搜索和分析引擎,底层基于 Lucene 开发。该框架可以用于分布式实时文件存储、分布式搜索引擎等。Elaticsearch 的倒排索引被很多广告公司用到了广告库检索上,同时 Elaticsearch + Logstash + Kibana 可以搭建日志分析系统,即 ELK。
以上就是关于常用的java框架有哪些的全部内容,这里总计介绍12个框架,当然这里并不是全部的框架内容,如果想了解更多关于java的信息,请继续关注。