Java框架详解(6大主流框架)

Java框架详解(6大主流框架)-mikechen

Java框架是Java开发必备使用的工具,下面重点给大家详解常见的6大框架@mikechen

Spring

Spring是一个综合性的Java应用程序开发框架,它提供了核心容器、AOP、数据访问/集成、Web开发和其他模块。

Spring体系结构,如下图所示:

Java框架详解(6大主流框架)-mikechen

提供了如下核心模块:

1.Spring核心容器

提供了依赖注入IOC控制反转,用于管理应用程序组件。

2.Spring AOP

提供了Spring AOP面向切面编程的支持,用于处理横切关注点。

3.Web层

提供了基本的Web支持,包括多部分文件上传、Spring MVC框架等。

4.数据集成

  • Spring JDBC: 简化了JDBC编程,提供了更高级的数据访问方式。
  • Spring ORM: 提供了对各种ORM框架(如Hibernate、JPA等)的集成。
  • Spring Transaction: 支持编程式和声明式事务管理,用于处理数据库事务。
  • Spring JMS: 提供了对Java消息服务(JMS)的支持。

5.安全认证

Spring Security提供了身份验证:授权、防止攻击等安全功能

 

Spring MVC

Spring MVC是Spring框架的一个模块,用于构建Web应用程序。

Spring MVC采用了MVC设计模式,将应用程序分为模型(Model)、视图(View)和控制器(Controller)三个组件。

如下图所示:

Java框架详解(6大主流框架)-mikechen

1、Model模型(简称M)

表示业务规则,主要作用为数据的接受和发送设定规则,一般都是以 JavaBean 的形式进行定义的。

2、View视图(简称V)

视图负责呈现模型数据,通常以HTML页面的形式呈现给用户。

Spring MVC支持多种视图技术,包括JSP(JavaServer Pages)、Thymeleaf、FreeMarker、Velocity等。

3、Controller控制器(简称C)

控制层,Controller层的功能就是将Model和View层进行关联。

 

SpringBoot

Java框架详解(6大主流框架)-mikechen

Spring Boot是Spring框架的一部分,旨在简化Spring应用程序的配置和部署过程。

Spring Boot通过提供自动配置、开箱即用的功能、嵌入式Web服务器等特性,简化了Spring应用程序的配置和开发流程。

Spring Boot适用于构建各种类型的应用,包括Web应用、RESTful服务和批处理应用。

传统的 SSM、SSH 框架组合配置繁琐臃肿,不同项目有很多重复、模板化的配置,严重降低了 Java 工程师的开发效率。

而 Spring Boot 对 Spring 家族和一些第三方库提供一系列自动化配置的 Starter,来使得开发快速搭建一个基于 Spring 的应用程序。

Java框架详解(6大主流框架)-mikechen

 

SpringCloud

SpringCloud 是一套完整的微服务解决方案,基于 SpringBoot框架,为开发人员提供了一套完整的微服务解决方案。

Spring Cloud提供了一系列的组件,来实现微服务架构,如下图所示:
Java框架详解(6大主流框架)-mikechen

1.Eureka(服务注册与发现)

Eureka是Spring Cloud的服务注册与发现组件,用于管理和维护服务的注册表。

如下图所示:

Java框架详解(6大主流框架)-mikechen

服务提供者会向Eureka服务器注册自己,服务消费者可以从Eureka服务器获取服务提供者的信息。

2.Ribbon(客户端负载均衡)

Ribbon是一个客户端负载均衡器,它可以与Eureka集成,帮助服务消费者从多个服务提供者中选择一个合适的实例进行请求。

如下图所示:

Java框架详解(6大主流框架)-mikechen

Zuul默认和Ribbon结合实现了负载均衡的功能,Ribbon就可基于某种负载均衡算法。

3.Hystrix(断路器模式)

Hystrix是一种断路器模式的实现,用于处理分布式系统中的故障和延迟。

如下图所示:

Java框架详解(6大主流框架)-mikechen

它可以防止故障的传播,并提供降级、超时、线程池隔离等功能。

4.Feign(声明式REST客户端)

Feign是一个声明式的REST客户端,它简化了通过HTTP请求访问其他微服务的过程。

Feign的接口定义类似于Spring的MVC控制器,Spring Cloud会自动为接口生成代理实现。

5.Zuul(API网关)

Zuul是一个API网关服务,用于管理所有请求的入口点,执行路由、负载均衡、鉴权、监控等功能。

如下图所示:

Java框架详解(6大主流框架)-mikechen

简单的话,Zuul就是楼下保安亭的大爷,所有进入大楼的人,都需要大爷检查,得到大爷的许可。

6.Config Server(配置中心)

Config Server是Spring Cloud的配置中心,用于集中管理和分发微服务的配置信息。

如下图所示:

Java框架详解(6大主流框架)-mikechen

微服务可以从配置服务器中获取配置,支持动态刷新配置。

7.Sleuth和Zipkin(分布式跟踪)

Sleuth是一个分布式跟踪系统,它可以跟踪请求在不同微服务之间的传递。

Zipkin是一个用于存储和查询分布式跟踪数据的系统。

 

Spring、Spring Boot和Spring Cloud的关系

1.Spring

Spring是一个综合性的企业级应用程序开发框架,提供了广泛的功能和模块,用于构建各种类型的应用程序。

Spring框架包括:Spring IOCSpring AOPSpring事务管理等模块,为开发人员提供了丰富的工具和组件来简化开发任务。

Java框架详解(6大主流框架)-mikechen

 

2.Spring Boot

Spring Boot是Spring框架的扩展,旨在简化应用程序的配置和开发。

Spring Boot是基于Spring框架的快速开发框架,旨在简化和加速Spring应用程序的搭建和开发过程。

 

3.Spring Cloud

Spring Cloud是构建分布式系统和微服务架构的工具集合,它基于Spring Boot提供了一套开发分布式应用程序的解决方案。

Spring Cloud构建在Spring Boot之上,并利用Spring Boot的便捷性和自动配置功能。

Spring Cloud通过提供分布式系统的解决方案,帮助开发者构建弹性、可伸缩的微服务应用。

Java框架详解(6大主流框架)-mikechen

Spring CloudSpring Boot紧密集成,提供了一致的编程模型和配置方式。

简而言之:

  • Spring是一个全面的企业级应用程序开发框架;
  • Spring Boot是基于Spring的快速开发框架;
  • 而Spring Cloud是构建分布式系统和微服务架构的工具集合。

 

Mybatis

MyBatis(前身为iBatis)是一个开源的Java持久化框架,用于与关系型数据库进行交互。它提供了一种将Java对象映射到数据库表的机制。

MyBatis原理如下图所示 :

Java框架详解(6大主流框架)-mikechen

包含了:

  1. 对象关系映射(ORM): MyBatis是一个ORM框架,它允许开发者将Java对象与数据库表之间建立映射关系,从而可以使用Java对象来进行数据库操作。
  2. SQL映射文件: MyBatis使用XML文件或注解来定义SQL语句和映射规则,这些SQL映射文件描述了如何将数据库表的数据映射到Java对象。
  3. 动态SQL: MyBatis支持动态SQL,允许在运行时根据条件来生成不同的SQL查询。
  4. 参数映射: MyBatis提供了强大的参数映射功能,使得可以将Java对象或基本数据类型直接传递给SQL查询,而不必手动处理参数转换。
  5. 高级查询: MyBatis支持复杂的查询功能,包括联接查询、分页、排序等。
  6. 存储过程支持: MyBatis允许调用数据库存储过程,并将结果映射到Java对象。
  7. 事务管理: MyBatis支持编程式和声明式事务管理。它可以与Spring等框架集成,以实现更强大的事务管理。

 

Hibernate

Hibernate是一个开源的Java对象关系映射(ORM)框架,用于将Java对象映射到关系型数据库表,从而实现对象和数据库之间的数据交互。

Hibernate核心组件,如下图所示:

Java框架详解(6大主流框架)-mikechen

  1. 对象关系映射(ORM): Hibernate允许开发者使用Java对象来表示数据库中的数据,从而屏蔽了数据库细节。
  2. 映射文件: Hibernate使用XML或注解来定义对象到数据库表的映射关系,这些映射文件描述了如何将Java类、属性和关联关系映射到数据库表、字段和外键。
  3. 数据查询: Hibernate提供了HQL(Hibernate Query Language)和标准SQL两种查询方式,允许开发者灵活地查询数据库。
  4. 数据持久化: Hibernate自动处理数据的插入、更新和删除,开发者不必编写复杂的SQL语句来执行这些操作。Hibernate还支持事务管理,确保数据操作的一致性和可靠性。

 

mikechen

mikechen睿哥,10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复架构即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法