Spring理论知识(Ⅴ)——Spring Web模块

server/2025/2/6 18:43:22/

Spring的组成

Spring由20个核心依赖组成,这20个核心依赖可以分为6个核心模块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
请添加图片描述

Spring Web模块简介

众所周知,Java目前最大的一个用途就是作为Web应用的服务端(Java Web)

Spring又是JavaEE中使用最广泛的开发框架,所以Spring的Web模块的重要性,不言而喻

Spring Web模块是Spring框架的重要组成部分,主要用于构建基于HTTP协议的Web应用程序,尤其是RESTful服务。它提供了对Web开发的支持,包括处理HTTP请求、响应、会话管理等,是开发现代Web应用和服务的核心模块之一。

Spring Web是对Spring Web之前的Web开发(Tomcat的ServletWeb应用+jquery)的一种增强,其本质依然是以Servlet为核心的Web应用

在这里插入图片描述

Spring Web模块的jar包组成以及简介

springwebjar_23">1. spring-web.jar:

作用:这是Spring Web模块的核心库,提供了处理HTTP请求、响应的基本功能,支持MVC架构和视图解析。
主要功能:包括Spring MVC框架、控制器类、请求映射注解(如@RequestMapping)、视图解析器等。

springwebmvcjar_27">2. spring-webmvc.jar:

作用:这是Spring Web的MVC实现库,专门为Web应用提供了MVC架构的完整实现。
主要功能:实现了控制器、模型、视图等MVC的核心组件,提供了视图解析(如JSP、Thymeleaf)、请求处理和会话管理等功能。

springwebfluxjar_31">3. spring-webflux.jar(可选):

作用:这是Spring 5之后引入的响应式Web框架,支持非阻塞式的响应式编程模型,适合高并发应用。
主要功能:提供了基于Reactor库的响应式Web应用开发,支持WebFlux框架的API。

组成jar包的详细介绍

springweb_39">spring-web介绍

pom文件依赖分析

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><modelVersion>4.0.0</modelVersion><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.0.2.RELEASE</version><name>Spring Web</name><description>Spring Web</description><url>https://github.com/spring-projects/spring-framework</url><organization><name>Spring IO</name><url>http://projects.spring.io/spring-framework</url></organization><licenses><license><name>Apache License, Version 2.0</name><url>http://www.apache.org/licenses/LICENSE-2.0</url><distribution>repo</distribution></license></licenses><developers><developer><id>jhoeller</id><name>Juergen Hoeller</name><email>jhoeller@pivotal.io</email></developer></developers><scm><connection>scm:git:git://github.com/spring-projects/spring-framework</connection><developerConnection>scm:git:git://github.com/spring-projects/spring-framework</developerConnection><url>https://github.com/spring-projects/spring-framework</url></scm><issueManagement><system>Jira</system><url>https://jira.springsource.org/browse/SPR</url></issueManagement><dependencies><dependency><groupId>com.caucho</groupId><artifactId>hessian</artifactId><version>4.0.51</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.2</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-cbor</artifactId><version>2.9.2</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-smile</artifactId><version>2.9.2</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.9.2</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>com.fasterxml.woodstox</groupId><artifactId>woodstox-core</artifactId><version>5.0.3</version><scope>compile</scope><exclusions><exclusion><artifactId>stax-api</artifactId><groupId>stax</groupId></exclusion></exclusions><optional>true</optional></dependency><dependency><groupId>com.fasterxml</groupId><artifactId>aalto-xml</artifactId><version>1.0.0</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.2</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>com.google.protobuf</groupId><artifactId>protobuf-java-util</artifactId><version>3.5.0</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>com.googlecode.protobuf-java-format</groupId><artifactId>protobuf-java-format</artifactId><version>1.4</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>com.rometools</groupId><artifactId>rome</artifactId><version>1.9.0</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>3.9.1</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>io.projectreactor.ipc</groupId><artifactId>reactor-netty</artifactId><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>io.reactivex.rxjava2</groupId><artifactId>rxjava</artifactId><version>2.1.6</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>io.reactivex</groupId><artifactId>rxjava</artifactId><version>1.3.4</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>io.reactivex</groupId><artifactId>rxjava-reactive-streams</artifactId><version>1.2.1</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>io.undertow</groupId><artifactId>undertow-core</artifactId><version>1.4.21.Final</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>javax.el</groupId><artifactId>javax.el-api</artifactId><version>3.0.1-b04</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>javax.faces</groupId><artifactId>javax.faces-api</artifactId><version>2.2</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>javax.json.bind</groupId><artifactId>javax.json.bind-api</artifactId><version>1.0</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>javax.mail</groupId><artifactId>javax.mail-api</artifactId><version>1.6.0</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.2-b02</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId><version>1.1.0.Final</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.0</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>javax.xml.ws</groupId><artifactId>jaxws-api</artifactId><version>2.3.0</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpasyncclient</artifactId><version>4.1.3</version><scope>compile</scope><exclusions><exclusion><artifactId>commons-logging</artifactId><groupId>commons-logging</groupId></exclusion></exclusions><optional>true</optional></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.3</version><scope>compile</scope><exclusions><exclusion><artifactId>commons-logging</artifactId><groupId>commons-logging</groupId></exclusion></exclusions><optional>true</optional></dependency><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-core</artifactId><version>8.5.23</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>org.codehaus.groovy</groupId><artifactId>groovy-all</artifactId><version>2.4.13</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-server</artifactId><version>9.4.7.v20170914</version><scope>compile</scope><exclusions><exclusion><artifactId>javax.servlet-api</artifactId><groupId>javax.servlet</groupId></exclusion></exclusions><optional>true</optional></dependency><dependency><groupId>org.eclipse.jetty</groupId><artifactId>jetty-servlet</artifactId><version>9.4.7.v20170914</version><scope>compile</scope><exclusions><exclusion><artifactId>javax.servlet-api</artifactId><groupId>javax.servlet</groupId></exclusion></exclusions><optional>true</optional></dependency><dependency><groupId>org.jetbrains.kotlin</groupId><artifactId>kotlin-reflect</artifactId><version>1.1.61</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>org.jetbrains.kotlin</groupId><artifactId>kotlin-stdlib</artifactId><version>1.1.61</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>5.0.2.RELEASE</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.0.2.RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.2.RELEASE</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.0.2.RELEASE</version><scope>compile</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-oxm</artifactId><version>5.0.2.RELEASE</version><scope>compile</scope><optional>true</optional></dependency><dependency><groupId>org.synchronoss.cloud</groupId><artifactId>nio-multipart-parser</artifactId><version>1.1.0</version><scope>compile</scope><optional>true</optional></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>io.projectreactor</groupId><artifactId>reactor-bom</artifactId><version>Bismuth-SR4</version><scope>import</scope><type>pom</type></dependency><dependency><groupId>io.netty</groupId><artifactId>netty-bom</artifactId><version>4.1.17.Final</version><scope>import</scope><type>pom</type></dependency></dependencies></dependencyManagement>
</project>
主要依赖及其作用

com.caucho.hessian
Hessian 是一个用于连接网络服务的二进制协议,他的com.caucho.hessian.client 和 com.caucho.hessian.server包不依赖于任何其他Resin的类(Resin是caucho公司的一个很快的Web服务器,Hessian是他的一部分),因此他能够应用于更小的客户端,比如Java Applet。其实也是因为不依赖所以也可以在任何容器比如Tomcat,Jetty中很方便的使用。

因为他是一个短小的协议,它能够应用于手机端,来连接Resin这样的web服务器。 因为它比较精悍,因此他能够使用在EJB中。

就算Hessian规范内容的本身,也是短小而令人关注的。 这个是说很多通讯框架其实都可以使用这个规范来序列化及反序列化类。

jackson-databind
Jackson-Databind 是一个流行的 Java 库,它是 Jackson JSON 处理器的核心组件之一,专注于数据绑定。

该项目支持注解驱动的配置,使得在对象和 JSON 间序列化和反序列化更加方便。它建立在 jackson-core 和 jackson-annotations 之上,提供了丰富的功能和高性能。(可以作为FastJson的替代,Spring Boot默认绑定的JSON类库也是Jackson


http://www.ppmy.cn/server/165483.html

相关文章

【LLM】为何DeepSeek 弃用MST却采用Rejection采样

文章目录 拒绝采样 Rejection sampling&#x1f3af;马尔可夫搜索树 &#x1f333;RFT和SFT1. RFT和SFT的区别2. 如何将RFT用于数学推理任务&#xff1f; Reference 在提升大语言模型&#xff08;LLM&#xff09;推理能力时&#xff0c;拒绝采样&#xff08;Rejection Sampling…

文本分析NLP的常用工具和特点

1&#xff09;非上下文感知型文本分析工具和特点 特性VADERTextBlob适合文本类型短文本、非正式语言&#xff08;如评论、推文&#xff09;中等长度、正式文本情感强度分析支持&#xff08;正面、负面、中性&#xff09;支持&#xff08;极行、主观性&#xff09;处理表情符号…

计算机网络笔记再战——理解几个经典的协议5——围绕IP的几个辅助协议

目录 DNS DNS查询 ARP ICMP DHCP NAT DNS 没人喜欢天天背诵&#xff0c;输入一场串IP&#xff01;我们需要一个稍微有含义一点的名称——比如说www.google.com来标记我访问的是谷歌&#xff0c;而不是一大长串的IP地址&#xff01;域名服务解析就是一个完成这样的功能的一…

【gRPC-gateway】初探grpc网关,插件安装,默认实现,go案例

grpc-gateway https://github.com/grpc-ecosystem/grpc-gateway 作用 通过反向代理的方式&#xff0c;将grpc server接口转为httpjson api 使用场景 向后兼容支持grpc不支持的语言或客户端 单纯用grpc实现的服务端代码&#xff0c;只能用grpc客户端调用&#xff0c;&#…

服务器虚拟化实战:架构、技术与最佳实践

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 服务器虚拟化是现代 IT 基础设施的重要组成部分&#xff0c;通过虚拟化技术可以提高服务器资源利用率、降低硬件成本&am…

fastadmin加密生成token

安装git sudo yum install git 在项目中安装 firebase/php-jwt composer require firebase/php-jwt 注意&#xff1a;PHP7.4以上&#xff0c;安装fileinfo 如果还有问题在PHP配置里禁止&#xff1a; ;disable_functions passthru,exec,system,putenv,chroot,chgrp,chown,s…

大语言模型轻量化:知识蒸馏的范式迁移与工程实践

大语言模型轻量化&#xff1a;知识蒸馏的范式迁移与工程实践 &#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 摘要 在大型语言模型&#xff…

Java 中 LinkedList 的底层源码

在 Java 的集合框架中&#xff0c;LinkedList是一个独特且常用的成员。它基于双向链表实现&#xff0c;与数组结构的集合类如ArrayList有着显著差异。深入探究LinkedList的底层源码&#xff0c;有助于我们更好地理解其工作原理和性能特点&#xff0c;以便在实际开发中做出更合适…