当前位置: 首页 > news >正文

SpringMVC详解

文章目录
    • 1 什么是MVC
      • 1.1 MVC设计思想
      • 1.2 Spring MVC
    • 2 SpringMVC快速入门
    • 3 SpringMVC处理请求
      • 3.1 请求分类及处理方式
        • 3.1.1 静态请求
        • 3.1.2 动态请求
      • 3.2 处理静态请求
        • 3.2.1 处理html文件请求
        • 3.2.2 处理图片等请求
      • 3.3 处理动态请求
        • 3.3.1 注解说明
        • 3.3.2 示例
      • 3.4 常见问题
    • 4 HTTP
      • 4.1 HTTP协议
      • 4.2 访问网页流程
      • 4.3 请求和响应
        • 4.3.1 HTTP请求 Request
        • 4.3.2 HTTP响应 Response
      • 4.4 URL
        • 4.4.1 定义
        • 4.4.2 URL组成
        • 4.4.3 注意事项
      • 4.5 请求方法
        • 4.5.1 GET请求
        • 4.5.2 POST请求
      • 4.6 传递数据方式
        • 4.6.1 GET请求
        • 4.6.2 POST请求
    • 5 服务端接收参数
      • 5.1 HttpServletRequest接收
      • 5.2 声明参数接收
      • 5.3 声明POJO类接收
    • 6 HttpClient测试
      • 6.1 HttpClient说明
    • 7 POJO
      • 7.1 定义
      • 7.2 entity实体类|DTO|VO

1 什么是MVC

1.1 MVC设计思想

MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分。

  • M

    Model,模型层,负责业务逻辑判断,数据库存取

  • V

    View,视图层,负责界面展示,向用户呈现数据的方式(html页面、图片、文本等)

  • C

    Controller,控制器,负责接收用户请求,并根据请求调用相应的模型来处理业务逻辑

在这里插入图片描述

1.2 Spring MVC

在这里插入图片描述

SpringMVC是一种基于MVC(模型-视图-控制器)模式的Web框架,它是基于Spring框架的一个子项目。

它通过将请求分派给相应的控制器来处理Web请求,然后将处理结果发送回客户端。

处理流程如图:

在这里插入图片描述

  1. 客户端发送请求至前端控制器DispatcherServlet;
  2. DispatcherServlet收到请求后,调用处理器映射器HandlerMapping;
  3. HandlerMapping根据请求URL找到具体的Controller;
  4. 通过处理器适配器HandlerAdapter找到具体执行该方法的实现类;
  5. Controller处理请求,并返回ModelAndView;
  6. DispatcherServlet通过ViewReslover(视图解析器)确定负责显示数据的具体View;
  7. DispatcherServlet对View进行渲染视图(即将Model填充至视图组件中),并将完整的视图响应到客户端。

2 SpringMVC快速入门

  • 第1步:创建工程 _051MVC-BOOT01

    在这里插入图片描述

  • 第2步:选择 2.7.17 版本,并勾选 Spring Web 依赖项

    在这里插入图片描述

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
  • 第3步:启动工程

  • 第4步:在resources/static目录下创建index.html

    <h1>工程首页
    </h1>
    
  • 第5步:Rebuild static

    在这里插入图片描述

3 SpringMVC处理请求

3.1 请求分类及处理方式
3.1.1 静态请求
  • 定义

    指请求的页面由服务器上预先准备好的静态web资源组成,如HTML、CSS、JS、IMG等,返回给客户端的信息内容是不变的。

  • 处理方式

    由服务器直接将请求的资源返回给客户端,服务器不处理任何逻辑,只是将预先准备好的资源返回给客户端。

    在这里插入图片描述

3.1.2 动态请求
  • 定义

    服务器会根据用户的请求动态生成内容,将数据返回到客户端显示页面内容。

  • 处理方式

    由服务器从数据库中获取数据,并进行相应的逻辑处理后将处理结果返回客户端。

    在这里插入图片描述

3.2 处理静态请求
3.2.1 处理html文件请求
  • 第1步:创建index.html(已经创建)浏览器输入地址测试

    http://localhost:8080/index.html

  • 第2步:浏览器显示工程首页

在这里插入图片描述

3.2.2 处理图片等请求
  • 第1步:复制任意一张图片到static下

  • 第2步:右键static目录,Rebuild static

  • 第3步:浏览器测试

    http://localhost:8080/liying.jpg

3.3 处理动态请求

通过在 controller 中定义对应的类及方法实现动态请求的业务逻辑处理。

3.3.1 注解说明
  • @Controller

    添加在类上;

    表示该类是一个控制器,负责处理用户的请求,并将处理结果生成响应返回给客户端。

  • @RequestMapping

    请求注解;

    添加在控制器类或控制器方法上;

    将HTTP请求映射到控制器中的方法,指定处理请求的路径

    • 控制器类上:为整个控制器指定一个基础路径
    • 控制器方法上:指定相对于基础路径的具体路径
  • @ResponseBody

    响应注解;

    添加在控制器方法上;

    可以使控制器方法通过返回值的方式将响应返回给客户端。

3.3.2 示例

处理用户查询订单的请求

  • 请求地址:http://localhost:8080/selectOrder
  • 返回响应:String “查询订单成功~~”

实现

  • 第1步: 工程目录下新建 controller.OrderController

    // @Controller:用于将一个类标识为SpringMVC中的控制器,负责处理用户的请求并将响应返回给客户端
    @Controller
    public class OrderController {// 1.请求注解@RequestMapping("/selectOrder")// 2.响应体注解,添加此注解后,可以通过返回值的方式响应给客户端数据@ResponseBodypublic String selectOrder(){return "查询订单成功~~";}
    }
    
  • 第2步:重启工程 后浏览器测试

    http://localhost:8080/selectOrder

3.4 常见问题
  • 工程已修改,但是浏览器刷新未出现效果
    • 工程static目录下文件修改后必须 Rebuild static
    • 浏览器有之前页面的缓存,Shift + F5 刷新页面
  • 404错误码代表找不到资源
    • 找不到静态资源

      • 检查请求的路径是否正确
      • 检查静态资源文件的存储位置是否在static里面
      • 选中static文件夹 ReBuild 重新编译再测试
    • 找不到动态资源

      • 检查请求的路径是否正确
      • 检查@Controller注解是否添加
      • 检查@RequestMapping注解里面的处理路径是否正确

4 HTTP

4.1 HTTP协议

超文本传输协议

HTTP协议是浏览器与服务器通讯的应用层协议,规定了浏览器与服务器之间的交互规则以及交互数据的格式信息等。

  • 用途 : 网页获取,数据的传输
  • 特点
    • 应用层协议,使用tcp进行数据传输;
    • 有丰富的请求类型;
    • 可以传输的数据类型众多.
4.2 访问网页流程
  1. 客户端(浏览器)通过tcp传输,发送http请求给服务端;
  2. 服务端接收到http请求后进行解析;
  3. 服务端处理请求内容,组织响应内容;
  4. 服务端将响应内容以http响应格式发送给浏览器;
  5. 浏览器接收到响应内容,解析展示.
4.3 请求和响应
4.3.1 HTTP请求 Request

浏览器给服务端发送的内容称为请求Request,一个请求包含三部分:请求行,请求头,请求体

  • 请求行 : 具体的请求类别和请求内容

    GET         /        HTTP/1.1
    请求类别   抽象路径     协议版本/**关于请求类别*/
    请求类别:每个请求类别表示向服务器端发请求做不同的操作GET : 获取服务器资源POST :新增服务器资源PUT : 更新服务器资源DELETE : 删除服务器资源/**关于抽象路径*/
    请求URL地址为:http://localhost:8080/
    请求行为:    GET / HTTP/1.1请求URL地址为:http://localhost:8080/v1/users/login
    请求行为:    GET /v1/users/login HTTP/1.1请求URL地址为:http://localhost:8080/v1/users/regGET /v1/users/reg HTTP/1.1
    
  • 请求头:对请求的进一步解释和描述

    请求头是浏览器可以给服务端发送的一些附加信息,有的用来说明浏览器自身内容,有的用来告知服务端交互细节,有的告知服务端消息正文详情等。

    Host: localhost:8080
    Connection: keep-alive
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.9
    
  • 请求体: 请求参数或者提交内容

    请求体通常是用户上传的信息,比如:在页面输入的注册信息,上传的附件等内容。

    在这里插入图片描述

4.3.2 HTTP响应 Response

服务端给浏览器发送的内容称为响应Response,一个响应包含三部分:响应行,响应头,响应体。

  • 响应行

    HTTP/1.1     200       OK
    版本信息    响应码   附加信息
    响应码 : 1xx:保留2xx:成功,表示处理成功,并正常响应3xx:重定向,表示处理成功,但是需要浏览器进一步请求4xx:客户端错误,表示客户端请求错误导致服务端无法处理5xx:服务端错误,表示服务端处理请求过程出现了错误
    
  • 响应头

    响应头与请求中的消息头格式一致,表示的是服务端发送给客户端的附加信息。

    HTTP/1.1 200 OK
    Content-Type: text/html
    Content-Length: 3546//Content-Length是用来告知浏览器响应正文的长度,单位是字节。
    

    Content-Type 是用来告知浏览器响应正文中的内容是什么类型的数据(图片,页面等等)不同的类型对应的值是不同,浏览器接收正文前会根据上述两个响应头来得知长度和类型从而读取出来做对应的处理以渲染给用户看。

    文件类型

    Content-Type对应的值

    html

    text/html

    css

    text/css

    js

    application/javascript

    png

    image/png

    gif

    image/gif

    jpg

    image/jpeg

  • 响应体

    响应的主体内容信息

    在这里插入图片描述

4.4 URL
4.4.1 定义

URL(Uniform Resource Locator)是互联网上 统一资源定位符 的简称,用于标识和定位互联网上资源的地址。在Web浏览器中,URL是用于访问网页的地址。

4.4.2 URL组成

http://localhost:8080/v1/users/loginusername=xxx&password=yyy

  • 协议(Protocol):指定访问资源的协议类型,常见的协议包括HTTP、HTTPS等。

  • 主机名(Hostname):指定要访问的服务器的主机名或域名。

  • 端口号(Port):指定服务器的端口号,不同的协议和应用程序使用不同的端口号。

  • 路径(Path):指定要访问的资源的路径,即文件或文件夹的路径。

  • 查询参数(Query Parameters):用于传递一些额外的信息给服务器,例如参数化的查询条件。

    查询参数和路径Path之间使用 ?分隔,多个查询参数之间使用 & 分隔。

在这里插入图片描述

4.4.3 注意事项
  • URL地址是区分大小写的,因此在输入时要注意大小写的一致性。

  • URL地址中不能包含非法字符,例如空格、特殊符号等。如果需要传递参数或附加信息,可以使用查询参数或POST请求等方式。

4.5 请求方法
4.5.1 GET请求

GET请求是HTTP协议中最常见的请求方式之一,它用于从服务器获取数据

GET请求将查询参数附加在URL之后,通过“”符号进行分隔。

  • 查询参数

    GET请求的参数通常以键值对的形式附加在URL之后。例如,以下URL中,“name=John&age=25”是两个查询参数,分别表示名字和年龄

    http://example.com/users?name=John&age=25
    
  • 注意事项

    • GET请求的参数是可见的,因此在URL中传递敏感信息时需谨慎。
    • GET请求的长度有限制,因为URL的长度有限制,因此当传递大量数据时,应考虑使用POST或其他方式。
  • 发送GET请求

    在浏览器中输入URL地址确认即可向服务端发送GET请求。

    http://localhost:8080/v1/users/login?username=xxx&password=xxx

4.5.2 POST请求

POST请求是另一种常见的HTTP请求方式,它用于向服务器提交数据。与GET请求不同,POST请求将数据放在请求体(Request Body)中,而不是URL中。

  • 请求体

POST请求的请求体中包含要提交的数据。这些数据可以是JSON、XML或其他格式。请求体中的数据通过Content-Type头部指定。

  • 请求示例

    POST /users HTTP/1.1  
    Host: example.com  
    Content-Type: application/json  
    Request Body: {"username": "john", "password": "secret"}
    
  • 使用POST请求的注意事项

    • POST请求的数据是私密的,不会显示在URL中,因此更适合传递敏感信息。

    • POST请求的长度没有限制,可以提交大量的数据。

  • 发送POST请求

    经常在 form 表单中发送。

    <form action="请求地址" method="post"><input type="text" name="username"><input type="text" name="password"><input type="submit" name="登录">
    </form>
    
4.6 传递数据方式

客户端向服务端传递数据的方式分为GET请求和POST请求两种方式。

4.6.1 GET请求

在查询参数中传递,比如:

http://localhost:8080/v1/users/login?username=xxx&password=xxx
4.6.2 POST请求

在请求体中传递,比如:

<form action="请求地址" method="post"><input type="text" name="username"><input type="text" name="password"><input type="submit" name="登录">
</form>

5 服务端接收参数

5.1 HttpServletRequest接收
  • HttpServletRequest是Java Servlet规范中定义的一个接口,它提供了与HTTP请求相关的方法和属性。

  • 在Java Web应用程序中,当客户端发送HTTP请求时,容器(例如Tomcat)会创建一个HttpServletRequest对象,该对象包含了客户端请求的所有信息,如请求的URL、请求方法、请求头、请求参数等。

  • 在请求处理过程中,开发人员可以使用HttpServletRequest对象来获取客户端发送过来的请求参数。通过调用HttpServletRequest的方法,可以获取请求的参数名称、参数值以及参数的数量等信息。

以上述案例为准,客户端把用户名和密码信息传递给服务端,服务端接收传递过来的用户名和密码信息。

  • 第1步:controller.UserController 处理请求

    /**方式1:使用HttpServletRequest接收数据*/
    @RequestMapping("/v1/users/login")
    @ResponseBody
    public String login(HttpServletRequest request){String username = request.getParameter("username");String password = request.getParameter("password");return username + ":" + password;
    }
    
  • 第2步:重启工程测试

5.2 声明参数接收

可以在处理请求的方法中通过 声明参数的方式 来接收客户端传递过来的数据。

应用分析

  • 第1步:controller.UserController处理登录请求

    /**方式2:通过声明参数的方式接收*/
    @RequestMapping("/v1/users/login")
    @ResponseBody
    // 好处:代码简洁,并且可以自动根据声明的类型进行转换
    public String login(String username, String password){return "username = " + username + ", password = " + password;
    }
    
  • 第2步:重启工程,执行测试脚本测试

5.3 声明POJO类接收

如果客户端传递数据过多,通过 HttpServletRequest 方式接收复用性较差,通过 声明参数接收 又很繁琐;所以可以将数据封装到 POJO类 中来接收。

操作步骤

  • 第1步:controller.UserController处理登录请求

    /**方式3:通过声明Pojo类接收*/
    @RequestMapping("/v1/users/login")
    @ResponseBody
    public String login(User user){return user.toString();
    }
    
  • 第2步:自定义pojo类,工程目录下创建entity.User

    public class User {// 客户端传递几个参数,此处就有几个属性private String username;private String password;// 省略 setter()  getter()  和 toString() 方法
    }
    
  • 第3步:重启工程后测试

6 HttpClient测试

6.1 HttpClient说明

使用SpringMVC中提供的 .http 后缀的文件来测试 Controller 层接口。

使用三个 # 号 作为不同测试方法的分隔符,也可以作为注释说明。

应用分析

  • 第1步:在test目录下创建 Directory :http

  • 第2步:创建 .http 后缀的文件进行测试:testUserController.http

    ### GET请求测试
    GET http://localhost:8080/v1/users/login?username=liying&password=123456
    Accept: application/json### POST请求测试
    POST http://localhost:8080/v1/users/login
    Content-Type: application/x-www-form-urlencodedusername=liying&password=123456
    
  • 第3步:执行对应的请求方法测试

    在这里插入图片描述

7 POJO

7.1 定义

Plain Ordinary Java Object:简单的Java对象;

是没有继承任何类或实现任何接口的简单 Java 对象,也不依赖于其他复杂的框架或技术;

POJO 对象通常包含了纯粹的数据和简单的业务逻辑,是一种用于简化 Java 应用程序开发的编程模型;

是entity实体类、VO(Value Object或View Object)视图对象、DTO(Data Transfer Object)数据传输对象 这3个对象的总称。

7.2 entity实体类|DTO|VO
  • entity实体类作用

    用来和数据库中的表字段一一对应的,比如UserEntity(id,username,password,nickname);

  • DTO作用

    用来接收客户端传递给服务器的数据的,比如:UserLoginDTO(username,password) 实现登录功能,客户端向服务器端传递数据;

  • VO作用

    用来处理服务器响应给客户端的数据的,比如:UserListVO(id,username,nickname) 登录成功后的列表页显示当前用户信息。

相关文章:

SpringMVC详解

文章目录 1 什么是MVC 1.1 MVC设计思想1.2 Spring MVC 2 SpringMVC快速入门3 SpringMVC处理请求 3.1 请求分类及处理方式 3.1.1 静态请求3.1.2 动态请求 3.2 处理静态请求 3.2.1 处理html文件请求3.2.2 处理图片等请求 3.3 处理动态请求 3.3.1 注解说明3.3.2 示例 3.4 常见问题…...

springboot、spring、springmvc有哪些注解

Spring Boot 常用注解 虽然Spring Boot本身并没有引入大量新的注解&#xff0c;但它基于Spring框架&#xff0c;并整合了多种技术和库&#xff0c;使得开发者可以更方便地使用Spring框架的功能。在Spring Boot项目中&#xff0c;常用的注解主要来自于Spring框架本身。 ‌Sprin…...

Apache Commons ThreadUtils 的使用与优化

Apache Commons ThreadUtils 的使用与优化 1. 问题背景 在 Java 系统中&#xff0c;跨系统接口调用通常需要高并发支持&#xff0c;尤其是线程池的合理配置至关重要。如果线程池使用不当&#xff0c;可能导致性能下降&#xff0c;线程等待或过载。 当前问题 使用了 Apache …...

重温设计模式--5、职责链模式

文章目录 职责链模式的详细介绍C 代码示例C示例代码2 职责链模式的详细介绍 定义与概念 职责链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种行为型设计模式&#xff0c;它旨在将请求的发送者和多个接收者解耦&#xff0c;让多个对象都有机会处理请求&am…...

下午四点半

客户的员工竟然背着公司开发报表系统&#xff0c;是在密谋什么大事吗&#xff1f; 之前去线下给客户的员工培训&#xff0c;当时我就对这个小姑娘印象很深刻&#xff0c;因为她后面加了我们的技术人员&#xff0c;问了很多问题&#xff0c;不同于从来没有用过低代码平台的人&a…...

嵌入式单片机中Flash存储器控制与实现

第一:嵌入式单片机内部Flash概述 1.存储器的概念 存储器指的是若干个存储单元的集合,每个存储单元都可以存储若干个二进制数,为了方便的操作存储单元,就为每个存储单元都分配了地址,就可以通过寻址来访问存储单元。由于计算机的处理的数据量较大,并且运算速度都很快,就…...

loki failed to flush

loki 报错 levelerror ts2024-12-27T08:13:10.450140686Z callerflush.go:143 org_idfake msg"failed to flush" err"failed to flush chunks: store put chunk: open /data/loki/chunks/ZmFrZS85ODBmM2U3NzliODg2MjY1OjE5M2VhNDVkYTc4OjE5M2VhNDVlNDdkOjVmMjA…...

微信小程序打印生产环境日志

微信小程序打印生产环境日志 新建一个log.js文件&#xff0c;写入以下代码&#xff1a; let log wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : nullmodule.exports {debug() {if (!log) returnlog.debug.apply(log, arguments)},info() {if (!log) returnlog.i…...

利用 deepin-IDE 的 AI 能力,我实现了文件加密扩展

经过多轮迭代&#xff0c;deepin 文件管理器&#xff08;dde-file-manager&#xff09;的扩展功能已经趋于稳定&#xff0c;看到越来越丰富的文管新功能&#xff0c;作为一名技术爱好者&#xff0c;也想自己动手写个插件扩展一下文管的功能。 我选择的开发工具是 deepin-IDE&a…...

JPA 基本查询(五)

JPA 查询Exists示例 JPA教程 - JPA 查询Exists示例 如果子查询返回任何行&#xff0c;则EXISTS条件返回true。 以下代码显示如何在JPQL中使用带有子查询的EXISTS运算符。 List l em.createQuery("SELECT e FROM Professor e WHERE EXISTS " "(SELECT p FROM …...

hiprint结合vue2项目实现静默打印详细使用步骤

代码地址是&#xff1a;vue-plugin-hiprint: hiprint for Vue2/Vue3 ⚡打印、打印设计、可视化设计器、报表设计、元素编辑、可视化打印编辑 本地安装包地址&#xff1a;electron-hiprint 发行版 - Gitee.com 1、先安装hipint安装包在本地 2、项目运行npm&#xff08;socket.…...

项目报 OutOfMemoryError 、GC overhead limit exceeded 问题排查以及解决思路实战

项目报 OutOfMemoryError、GC overhead limit exceeded 问题排查以及解决思路实战 前言&#xff1a; 问题现象描述&#xff1a; 1&#xff0c;生产环境有个定时任务&#xff0c;没有初始化告警数据【告警数据量为1000多个】 2&#xff0c;其他定时任务执行正常 3&#xff0c;查…...

【计算机-显示屏灰阶测试】

硬计算机-显示屏灰阶测试 ■ 对比度■ 清晰度■ 灰度色阶&#xff08;色带&#xff09;■ 对比率■■ ■ 对比度 在一个性能良好的显示器上&#xff0c;您可观察到每种颜色的标尺都可分为从 1 至 32、大致上等宽但不同亮度的色带。即使是在刻度1处的色带也应该隐约可见。 一个…...

CSS系列(40)-- Container Queries详解

前端技术探索系列&#xff1a;CSS Container Queries详解 &#x1f4e6; 致读者&#xff1a;探索组件响应式的艺术 &#x1f44b; 前端开发者们&#xff0c; 今天我们将深入探讨 CSS Container Queries&#xff0c;这个强大的组件级响应式特性。 基础概念 &#x1f680; 容…...

工作生活做事慢效率低原因及解决方案

时间和效率管理具体版&#xff08;初阶&#xff09;&#xff08;一&#xff09; 工作&生活做事慢效率低原因及解决方案 一、效率慢的原因&#xff08;动物解析法&#xff08;编者自创&#xff09;&#xff09; 打败你的可能是生活的小事 1.无头苍蝇无流程 做事之前没有想…...

各种数据库类型介绍

在软件开发和数据处理领域&#xff0c;数据库扮演着至关重要的角色。它们用于存储、检索和管理大量数据&#xff0c;是信息系统不可或缺的基础。以下是几种常用的数据库类型及其简要介绍&#xff1a; 1.关系型数据库&#xff08;Relational Databases&#xff09; 关系型数据库…...

了解智能运维

智能运维 &#xff08;一&#xff09;运维工作的转变 随着技术发展&#xff0c;运维工作从基础的搬机器、插网线、装系统等体力活儿&#xff0c;逐渐转变为更侧重服务器管理、代码管理、日志分析、监控告警、流量管理及故障排查等的脑力劳动。如今&#xff0c;运维人员拿到的…...

js实现仿windows文件名称排序

引言&#xff1a; 在JavaScript中&#xff0c;数组排序是一个常见的操作&#xff0c;但默认的Array.sort()方法只能进行简单的字符串比较。在处理复杂数据时&#xff0c;我们需要自定义排序函数来满足特定的需求。本文将通过一个具体的代码示例&#xff0c;解释如何实现一个仿w…...

基于Oauth2的SSO单点登录---前端

Vue-element-admin 是一个基于 Vue.js 和 Element UI 的后台管理系统框架&#xff0c;提供了丰富的组件和功能&#xff0c;可以帮助开发者快速搭建现代化的后台管理系统。 一、基本知识 &#xff08;一&#xff09;Vue-element-admin 的主要文件和目录 vue-element-admin/ |--…...

springboot 使用注解设置缓存时效

springboot 使用注解设置缓存时效 import org.apache.commons.lang3.StringUtils; import org.springframework.data.redis.cache.RedisCache; import org.springframework.data.redis.cache.RedisCacheConfiguration; import org.springframework.data.redis.cache.RedisCach…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试

作者&#xff1a;Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位&#xff1a;中南大学地球科学与信息物理学院论文标题&#xff1a;BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接&#xff1a;https://arxiv.…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...