JavaWeb基础下

一、什么是 Spring

Spring 是一个开源的框架,用于构建企业级 Java 应用程序。它提供了广泛的基础设施支持和一系列的解 决方案,使开发者能够更轻松地构建和部署复杂的应用。

特点:

  1. 轻量级: Spring 是一个轻量级框架,不需要大量的配置信息,使开发更加简单。
  2. 控制反转 (IoC):Spring 实现了控制反转,即容器负责对象的创建、组装和管理。这样,开发者可以专注于业务逻辑而不是对象的创建和管理。
  3. 面向切面编程(AOP):Spring 支持面向切面编程,允许开发者定义横切关注点,并将其与主要业务逻辑分离。
  4. 容器: Spring 提供了一个容器,用于管理应用中的对象。这个容器负责对象的生命周期和配置。
  5. 数据访问: Spring 提供了对各种数据访问技术的支持,包括 JDBC、ORM(对象关系映射)等。
  6. 事务管理: Spring 支持声明式事务管理,简化了事务管理的配置。
  7. 模块化: Spring 框架被划分为多个模块,开发者可以选择使用特定的模块,以满足其特定需求

对于现阶段,大家理解 Spring 是一个 Java 开源框架接口,也是一个生态体系。其核心框架是 Spring Framework,在此基础上又衍生出来 Spring Boot、Spring Cloud、Spring Data、Spring Security 等一系列优秀项目。

二、什么是 SpringMVC

SpringMVC 是 Spring 基础之上的一个 MVC 框架,基于模型-视图-控制器(Model-View-Controller,简称 MVC)设计模式进行 JavaWeb 系统的开发,它是 Spring 的一个模块,通过 Dispatcher Servlet, ModelAndView 和 View Resolver 等,让应用开发变得很容易。SpringMVC 是基于 Spring 功能之上添加的 Web 框架,想用 SpringMVC 必须先依赖 Spring。

三、什么是 MVC

MVC 模式是一种软件框架模式,被广泛应用在 JavaEE 项目的开发中。MVC 模式通过提供一种良好的组织结构和分工方式,帮助解决了软件开发中的耦合、可维护性、可测试性和可扩展性等方面的问题。这使得开发者能够更有效地构建和维护复杂的应用程序。

MVC 即模型(Model) 、视图(View)、控制器(Controller)

模型(Model):

模型是用于处理数据逻辑的部分。

所谓数据逻辑,也就是数据的映射以及对数据的增删改查,Bean、DAO(data access object,数据访问对象)等都属于模型部分。

视图(View):

视图负责数据与其它信息的显示,也就是给用户看到的页面。

html、JSP 等页面都可以作为视图。

控制器(Controller):

控制器是模型与视图之间的桥梁,控制着数据与用户的交互。

控制器通常负责从视图读取数据,处理用户输入,并向模型发送数据,也可以从模型中读取数据,再发送给视图,由视图显示。

3.1 核心架构流程

在 Spring MVC 框架中, DispatcherServlet 、 HandlerMapping 和 HandlerAdapter 是三个重要的组件,它们各自承担不同的角色,协同工作以处理客户端的请求并调度相应的处理程序。以下是它们的解释和作用:

DispatcherServlet(调度器Servlet):

作用: DispatcherServlet 是 Spring MVC 中的前端控制器(Front Controller),负责接收客户端的所有请求并将其分派给适当的处理程序(Controller)。

解释: 当客户端发送请求时, DispatcherServlet 接收请求,然后根据配置和规则找到合适的 HandlerMapping 确定请求对应的处理程序。一旦找到处理程序, DispatcherServlet 将请求交给该处理程序进行处理。它还负责处理异常、视图解析和其他与请求生命周期相关的任务。

HandlerMapping(处理程序映射):

作用: HandlerMapping 负责将请求映射到相应的处理程序(Controller)。它确定了客户端请求应该由哪个处理程序来处理。

解释: 在 Spring MVC 中,可以有多个 HandlerMapping 实现,包括基于注解的映射、基于路径的映射等。 HandlerMapping 将请求的 URL 映射到具体的控制器类和方法,以便DispatcherServlet 可以将请求分发给正确的处理程序。

HandlerAdapter(处理程序适配器):

作用: HandlerAdapter 负责调用实际的处理程序(Controller)来处理请求,并将处理程序的执行结果返回给 DispatcherServlet 。

解释: 不同的处理程序可能有不同的接口, HandlerAdapter 的作用是适配各种不同类型的处理程序,使得它们能够被 DispatcherServlet 统一调用。它将请求传递给处理程序,处理程序执行后, HandlerAdapter 还负责处理返回的结果,如视图解析、数据绑定等。

结论:

这三个组件共同协作,实现了请求的分发和处理。 DispatcherServlet 充当总管, HandlerMapping负责找到处理程序,而 HandlerAdapter 则负责调用实际的处理程序执行业务逻辑。这种设计使得Spring MVC 具有灵活性,允许通过配置来适应不同的业务需求和处理程序类型。

四. 什么是Srping Boot

SpringBoot 是一款基于 JAVA 的开源框架。目的是为了简化 Spring 应用搭建和开发流程。是目前比较流行,大中小型企业常用的框架。正因为极大简化了开发流程,才受到绝大开发人员的喜爱。

SpringBoot 核心原理是自动装配(自动配置),并且在 SpringBoot 中还内置了 Tomcat。

在这之前,开发一个JavaWeb,Spring 等项目要进行很多配置,使用了 SpringBoot 就不用在过多考虑这些方面。

在 Spring Boot 中,自动装配是一项非常重要的功能,它帮助开发者简化了项目的配置和搭建过程。Spring Boot通过一系列的约定和默认配置,自动地将各种组件进行装配,使得开发者能够更专注于业务逻辑不必过多关注框架的配置

自动装配体现的一些主要方面:

  1. 依赖管理: Spring Boot 通过 Maven 或 Gradle 等构建工具,引入了一系列默认的依赖项,以简化项目的搭建。例如,通过添加 spring-boot-starter-web 依赖,你就能够使用Spring MVC来构建Web应用。
  2. 类路径扫描: Spring Boot会自动扫描项目中的特定包及其子包,寻找标有特殊注解的类,比如@Controller 、 @Service 、 @Repository 等,然后将它们注册为Spring的组件。
  3. 默认配置: Spring Boot 提供了大量的默认配置,当没有显式配置时,这些默认配置会自动应用。例如,如果项目中引入了数据库相关的依赖,Spring Boot 会根据类路径上的数据库驱动自动配置数据源。
  4. 条件化装配: Spring Boot 引入了条件化装配的概念,根据类路径上的特定条件来决定是否启用某些配置。这使得可以根据不同的环境或条件来自动装配不同的组件。
  5. Spring Boot Starter:Spring Boot 提供了一系列的 Starter 依赖,这些 Starter 提供了一组常用的依赖项的整合,比如 spring-boot-starter-data-jpa 、 spring-boot-starter-security 等,它们能够一次性地引入一组相关的依赖和配置,简化了开发者的工作。
  6. 自定义Starter: 除了 Spring Boot 提供的 Starter 之外,开发者也可以创建自己的 Starter,将一组相关的依赖和配置封装起来,使得它们能够在不同的项目中被重复使用。
  7. 自动化配置类: Spring Boot通过自动化配置类来实现自动装配。这些配置类使用 @Configuration 注解标记,并且通常包含有 @ConditionalOn… 注解,用于指定生效的条件。

总体来说,Spring Boot通过一系列约定、默认配置、条件化装配等方式,实现了自动装配,使得开发者

能够更加方便地构建和配置项目。

五. 搭建Spring Boot项目

点击文件–> 新建项目

resources一般放一些静态文件

六. 什么是 Spring Cloud

Spring Cloud 是一系列框架的有序集合。是一套基于 Spring Framework 的分布式系统开发工具,用于构建分布式应用程序中的各种模块化组件。

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

Spring Cloud 的诞生并不是为了解决微服务中的某一个问题,而是提供了一套解决微服务架构实施的综合性解决方案。

Spring Cloud 并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Spring Cloud 提供了许多模块,以下是一些常用的模块及其主要作用:

  1. Spring Cloud Config(配置中心):用于集中管理配置信息,可以将配置信息存储在版本控制系统中,并在需要时动态刷新。
  2. fcmit.ccSpring Cloud Netflix(服务治理):整合了Netflix开发的一些组件,包括Eureka(服务注册与发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Feign(声明式REST客户端)等,用于构建具有高可用性和弹性的微服务架构。
  3. Spring Cloud Bus(消息总线):通过消息总线,实现微服务架构中配置的动态刷新,使得配置的修改能够快速传播到各个微服务实例。
  4. Spring Cloud Sleuth(分布式追踪):用于跟踪分布式系统中的请求流程,生成跨服务的唯一标识,方便在分布式系统中进行日志跟踪和性能监控。
  5. Spring Cloud Gateway(网关):提供了一种简单而有效的方式来进行路由、过滤以及转发请求,用于构建微服务架构中的API网关。
  6. Spring Cloud Stream(消息驱动):简化了消息驱动的微服务开发,提供了一套统一的编程模型,支持多种消息中间件。
  7. Spring Cloud Security(安全):提供了一些安全工具和特性,用于保护分布式系统中的微服务。
  8. Spring Cloud Data Flow(数据流):用于构建和部署实时数据处理和分析的微服务,支持复杂的数据流操作。
  9. Spring Cloud OpenFeign(声明式REST客户端):简化了微服务之间的REST调用,通过声明式的方式定义和调用服务接口。
  10. Spring Cloud Task(任务调度):用于简化任务调度和执行,支持在分布式环境中进行批处理任务的调度和执行

JavaWeb基础下
http://example.com/2025/06/02/JavaWeb基础下/
作者
XCDH
发布于
2025年6月2日
许可协议