springboot配置并使用RestTemplate
目录
一、RestTemplate配置
1、将RestTemplate初始化为Bean
2、使用HttpClient作为RestTemplate客户端
(1)引入HttpClient依赖
(2)修改RestTemplate配置类
3、设置拦截器
(1)新增拦截器类
(2)设置拦截器
4、新增支持的媒体类型
二、RestTemplate使用
1、RestTemplate注入
2、无参数get请求测试
(1)Controller代码
(2)RestTemplate单元测试
3、带参get请求测试
(1)Controller代码
(2)RestTemplate单元测试
4、带占位符参数的get请求测试
(1)Controller代码
(2)RestTemplate单元测试
5、post请求测试
(1)Article实体类
(2)Controller代码
(3)RestTemplate单元测试
6、设置请求头
(1)Article实体类
(2)Controller代码
(3)RestTemplate单元测试
7、上传文件
(1)Controller代码
(2)RestTemplate单元测试
8、文件下载
(1)Controller代码
(2)RestTemplate单元测试
三、参考
一、RestTemplate配置
1、将RestTemplate初始化为Bean
package com.xiaobai.conf;import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;import java.util.Collections;/*** @Author 王天文* @Date 2024/12/29 18:06* @Description: RestTemplate配置类*/
@Configuration
public class RestTemplateConf {/*** 当指定类型Bean不存在时,会创建一个新的Bean,如果用户自定义了Bean,将使用用户自定义的Bean* @return*/@ConditionalOnMissingBean(RestTemplate.class)@Beanpublic RestTemplate restTemplate() {// 使用JDK自带的HttpURLConnection作为客户端RestTemplate restTemplate = new RestTemplate();return restTemplate;}
}
2、使用HttpClient作为RestTemplate客户端
(1)引入HttpClient依赖
<!--httpclient--><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.7</version></dependency>
(2)修改RestTemplate配置类
package com.xiaobai.conf;import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;import java.util.Collections;/*** @Author 王天文* @Date 2024/12/29 18:06* @Description: RestTemplate配置类*/
@Configuration
public class RestTemplateConf {/*** 当指定类型Bean不存在时,会创建一个新的Bean,如果用户自定义了Bean,将使用用户自定义的Bean* @return*/@ConditionalOnMissingBean(RestTemplate.class)@Beanpublic RestTemplate restTemplate() {// 使用httpclient作为底层客户端RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());return restTemplate;}/*** 使用httpclient作为底层客户端* @return*/@Beanpublic ClientHttpRequestFactory getClientHttpRequestFactory() {int timeout = 50000;RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout).setConnectionRequestTimeout(timeout).setSocketTimeout(timeout).build();CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();return new HttpComponentsClientHttpRequestFactory(httpClient);}
}
3、设置拦截器
(1)新增拦截器类
package com.xiaobai.conf;import org.springframework.http.HttpRequest;
import org.springframework.http.client.ClientHttpRequestExecution;
import org.springframework.http.client.ClientHttpRequestInterceptor;
import org.springframework.http.client.ClientHttpResponse;import java.io.IOException;/*** @Author 王天文* @Date 2024/12/22 21:51* @Description: restTemplate拦截器*/
public class RestTemplateInterceptor implements ClientHttpRequestInterceptor {@Overridepublic ClientHttpResponse intercept(HttpRequest httpRequest,byte[] bytes,ClientHttpRequestExecution clientHttpRequestExecution) throws IOException {ClientHttpResponse httpResponse = clientHttpRequestExecution.execute(httpRequest, bytes);return httpResponse;}
}
(2)设置拦截器
package com.xiaobai.conf;import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;import java.util.Collections;/*** @Author 王天文* @Date 2024/12/29 18:06* @Description: RestTemplate配置类*/
@Configuration
public class RestTemplateConf {/*** 当指定类型Bean不存在时,会创建一个新的Bean,如果用户自定义了Bean,将使用用户自定义的Bean* @return*/@ConditionalOnMissingBean(RestTemplate.class)@Beanpublic RestTemplate restTemplate() {// 使用JDK自带的HttpURLConnection作为客户端RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());// 设置拦截器restTemplate.setInterceptors(Collections.singletonList(restTemplateInterceptor()));return restTemplate;}/*** 使用httpclient作为底层客户端* @return*/@Beanpublic ClientHttpRequestFactory getClientHttpRequestFactory() {int timeout = 50000;RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout).setConnectionRequestTimeout(timeout).setSocketTimeout(timeout).build();CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();return new HttpComponentsClientHttpRequestFactory(httpClient);}/*** 拦截器* @return*/@Beanpublic RestTemplateInterceptor restTemplateInterceptor() {return new RestTemplateInterceptor();}
}
4、新增支持的媒体类型
RestTemplate 只支持application/json格式,需要手动补充text/plan,text/html格式
package com.xiaobai.conf;import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.client.RestTemplate;import java.util.Arrays;
import java.util.Collections;/*** @Author 王天文* @Date 2024/12/29 18:06* @Description: RestTemplate配置类*/
@Configuration
public class RestTemplateConf {/*** 当指定类型Bean不存在时,会创建一个新的Bean,如果用户自定义了Bean,将使用用户自定义的Bean* @return*/@ConditionalOnMissingBean(RestTemplate.class)@Beanpublic RestTemplate restTemplate() {// 使用JDK自带的HttpURLConnection作为客户端RestTemplate restTemplate = new RestTemplate(getClientHttpRequestFactory());// 设置拦截器restTemplate.setInterceptors(Collections.singletonList(restTemplateInterceptor()));// 增加支持的媒体类型restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter());return restTemplate;}/*** 使用httpclient作为底层客户端* @return*/@Beanpublic ClientHttpRequestFactory getClientHttpRequestFactory() {int timeout = 50000;RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(timeout).setConnectionRequestTimeout(timeout).setSocketTimeout(timeout).build();CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();return new HttpComponentsClientHttpRequestFactory(httpClient);}/*** 拦截器* @return*/@Beanpublic RestTemplateInterceptor restTemplateInterceptor() {return new RestTemplateInterceptor();}/*** 媒体类型* @return*/@Beanpublic MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {// RestTemplate 只支持application/json格式,需要手动补充text/html格式MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.TEXT_PLAIN, MediaType.TEXT_HTML));return mappingJackson2HttpMessageConverter;}
}
二、RestTemplate使用
1、RestTemplate注入
@Autowiredprivate RestTemplate restTemplate;
2、无参数get请求测试
(1)Controller代码
@GetMapping(value = "/getString")public String getString() {return "操作成功";}
(2)RestTemplate单元测试
@Testpublic void testGetString() {ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://localhost:8090/getString", String.class);log.info(responseEntity.getBody());}
3、带参get请求测试
(1)Controller代码
@GetMapping("/getRequestByParam")public Map<String, Object> getRequestByParam(@RequestParam("name") String name) {log.info("名称:" + name);Map<String, Object> map = new HashMap<>();map.put("responseData", "请求成功");return map;}
(2)RestTemplate单元测试
@Testpublic void testParamGet() throws Exception {Map<String, Object> param = new HashMap<>();param.put("name", "张三");ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://localhost:8090/getRequestByParam?name={name}", String.class, param);log.info("响应信息:{}", responseEntity.getBody());}
4、带占位符参数的get请求测试
(1)Controller代码
@GetMapping("/getRequestByPlaceHolder/{name}/{age}")public Map<String, Object> getRequestByPlaceHolder(@PathVariable("name") String name,@PathVariable("age") String age) {log.info("名称:" + name);log.info("年龄:" + age);Map<String, Object> map = new HashMap<>();map.put("responseData", "请求成功");return map;}
(2)RestTemplate单元测试
@Testpublic void testPlaceholderGet() {ResponseEntity<String> responseEntity = restTemplate.getForEntity("http://localhost:8090/getRequestByPlaceHolder/{1}/{2}", String.class, "张三", "25");log.info("响应信息:{}", responseEntity.getBody());}
5、post请求测试
(1)Article实体类
package com.xiaobai.aroundtest.entity;import lombok.Data;import java.io.Serializable;/*** @author wangtw* @date 2023/12/6 0:35* @description*/
@Data
public class Article implements Serializable {private static final long serialVersionUID = 1L;/*** 文章名称*/private String name;/*** 描述*/private String description;
}
(2)Controller代码
@PostMapping("/postRequest")public Map<String, Object> postRequest(@RequestParam String name, @RequestBody Article article) {log.info("名称:" + name);log.info("文章名称:" + article.getName());log.info("文章描述:" + article.getDescription());Map<String, Object> map = new HashMap<>();map.put("responseData", "请求成功");return map;}
(3)RestTemplate单元测试
@Testpublic void testPost() {// 表单数据Map<String, Object> formData = new HashMap<>();formData.put("name", "解忧杂货店");formData.put("description", "这是一本好书");// 单独传参Map<String, Object> param = new HashMap<>();param.put("name", "东野圭吾");// 请求调用HttpEntity<Map<String, Object>> formEntity = new HttpEntity<>(formData);ResponseEntity<String> responseEntity = restTemplate.postForEntity("http://localhost:8090/postRequest?name={name}", formEntity, String.class, param);log.info("响应信息:{}", responseEntity.getBody());}
6、设置请求头
(1)Article实体类
package com.xiaobai.aroundtest.entity;import lombok.Data;import java.io.Serializable;/*** @author wangtw* @date 2023/12/6 0:35* @description*/
@Data
public class Article implements Serializable {private static final long serialVersionUID = 1L;/*** 文章名称*/private String name;/*** 描述*/private String description;
}
(2)Controller代码
@PostMapping("/postRequestHeader")public Map<String, Object> postRequestHeader(HttpServletRequest request,@RequestParam String name, @RequestBody Article article) {String token = request.getHeader("token");log.info("请求token:" + token);log.info("名称:" + name);log.info("文章名称:" + article.getName());log.info("文章描述:" + article.getDescription());Map<String, Object> map = new HashMap<>();map.put("responseData", "请求成功");return map;}
(3)RestTemplate单元测试
@Testpublic void testPostHeader() {// 请求头HttpHeaders httpHeaders = new HttpHeaders();httpHeaders.add("token", "123456");// 表单数据Map<String, Object> formData = new HashMap<>();formData.put("name", "解忧杂货店");formData.put("description", "这是一本好书");// 单独传参Map<String, Object> param = new HashMap<>();param.put("name", "东野圭吾");// 请求调用HttpEntity<Map<String, Object>> formEntity = new HttpEntity<>(formData, httpHeaders);ResponseEntity<String> responseEntity = restTemplate.postForEntity("http://localhost:8090/postRequestHeader?name={name}", formEntity, String.class, param);log.info("响应信息:{}", responseEntity.getBody());}
7、上传文件
(1)Controller代码
@PostMapping("/upload")public Map<String, Object> upload(@RequestParam String name, MultipartFile uploadFile) throws IOException {log.info("名称:" + name);uploadFile.transferTo(new File("D:\\temp/" + uploadFile.getOriginalFilename()));Map<String, Object> map = new HashMap<>();map.put("responseData", "请求成功");return map;}
(2)RestTemplate单元测试
@Testpublic void testUploadFile() {MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();param.add("uploadFile", new FileSystemResource(new File("D:\\christmas-tree.svg")));param.add("name", "张三");// 请求头设置HttpHeaders headers = new HttpHeaders();headers.setContentType(MediaType.MULTIPART_FORM_DATA);// 请求调用HttpEntity<MultiValueMap<String, Object>> formEntity = new HttpEntity<>(param, headers);ResponseEntity<String> responseEntity = restTemplate.postForEntity("http://localhost:8090/upload", formEntity, String.class);log.info("响应信息:{}", responseEntity.getBody());}
8、文件下载
(1)Controller代码
@PostMapping("/download")public Map<String, Object> download(@RequestParam String fileName,HttpServletResponse response) {log.info("文件名称:" + fileName);File file = new File("D:\\temp/" + fileName);try(FileInputStream fileInputStream = new FileInputStream(file);ServletOutputStream outputStream = response.getOutputStream()) {response.setHeader("content-disposition","attachment;fileName=" + URLEncoder.encode(fileName,"UTF-8"));FileCopyUtils.copy(fileInputStream, outputStream);} catch (Exception e) {e.printStackTrace();}Map<String, Object> map = new HashMap<>();map.put("responseData", "请求成功");return map;}
(2)RestTemplate单元测试
@Testpublic void testDownloadFile() {MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();param.add("fileName", "christmas-tree.svg");// 请求调用HttpEntity<MultiValueMap<String, Object>> formEntity = new HttpEntity<>(param);ResponseEntity<byte[]> responseEntity = restTemplate.postForEntity("http://localhost:8090/download", formEntity, byte[].class);// 获取响应头HttpHeaders responseEntityHeaders = responseEntity.getHeaders();Set<Map.Entry<String, List<String>>> responseSet = responseEntityHeaders.entrySet();for (Map.Entry<String, List<String>> responseValue : responseSet) {log.info("响应头:" + responseValue.getKey() + ",响应内容:" + responseValue.getValue());}try {// 文件保存byte[] fileData = responseEntity.getBody();FileCopyUtils.copy(fileData, new File("D:\\christmas-tree1.svg"));} catch (IOException e) {e.printStackTrace();}}
三、参考
Spring之RestTemplate详解
相关文章:
springboot配置并使用RestTemplate
目录 一、RestTemplate配置 1、将RestTemplate初始化为Bean 2、使用HttpClient作为RestTemplate客户端 (1)引入HttpClient依赖 (2)修改RestTemplate配置类 3、设置拦截器 (1)新增拦截器类 …...
人工智能-Python网络编程-TCP
1 TCP-概念版 服务端 import socket # 1 创建服务端套接字对象 # socket.AF_INET IPV4 # socket.SOCK_STREAM TCP # socket.SOCK_DGRAM UDP tcp_server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 2 绑定端口号 tcp_server_socket.bind((192.…...
【Java回顾】Day3 继承|Override/Ovverload|多态|抽象类|封装|接口|枚举
学习资料 菜鸟教程 https://www.runoob.com/java/java-interfaces.html 继承|Override/Ovverload|多态|抽象类|封装|接口|枚举 继承 创建分等级层次的类,子类继承父类的特征、行为、方法 class 父类{ } class 子类 extends 父类{ super(); }一些性质 Java 不支持…...
SpringMVC(四)响应
目录 数据处理及跳转 1. 结果跳转方式 ①.ModelAndView ②.ServletAPI 1、通过HttpServletResponse进行输出 2、通过HttpServletResponse实现请求转发 3、通过HttpServletResponse实现重定向 ③.SpringMVC 1.直接输出 2.请求转发 3.重定向 2.ResponseBody响应json数…...
vim 的基础使用
目录 一:vim 介绍二:vim 特点三:vim 配置四:vim 使用1、vim 语法格式2、vim 普通模式(1)保存退出(2)光标跳转(3)文本删除(4)文本查找&…...
关于flinkCDC监控mysql binlog时,datetime类型自动转换成时间戳类型问题
flinkCDC监控mysql binlog时,datetime类型自动转换成时间戳类型 问题解决1.自定义转换器类2.代码引用 结果 问题 flink版本:1.18.1,mysql版本:8.0.40 使用FlinkCDC的MySqlSource 连接mysql,对于datetime 类型字段&…...
基于Springboot校园失物招领系统【附源码】
基于Springboot校园失物招领系统 效果如下: 系统登陆页面 物品页面 系统首页面 失物招领管理页面 失物认领页面 宣传视频页面 物品挂失留言管理页面 宣传视频类型管理页面 研究背景 在校园环境中,失物招领是一个常见的问题。传统的失物招领方式主要依…...
单片机端口操作和独立引脚操作
单片机端口操作和独立引脚操作 在单片机编程中,控制I/O端口是最基础的操作之一。通过控制端口,我们可以实现对外设(如LED、按键、继电器等)的控制。在51单片机中,有两种常见的端口操作方式:整体控制&#…...
【Vim Masterclass 笔记03】S03L10 + S03L11:Vim 中的文本删除操作以及 Vim 思维习惯的培养(含 DIY 拓展知识点)
文章目录 Section 3:Vim Essentials(Vim 核心知识)S03L10 Vim 核心浏览命令同步练习点评课S03L11 Deleting Text and "Thinking in Vim" 文本的删除及 Vim 思维习惯的培养1 删除单个字符2 删除一个单词2.1 推广1:D HJK…...
ARM200~500部署
前提:数据库已经安装好,并且正常运行 1.修改hostname,将里面的AR-A 改为hzx vi /etc/hostname 2.重启网络服务 sudo systemctl restart NetworkManager 3.修改community-admin.service 文件,更改小区名称和IP,并将文件上传到/…...
word中插入zotero引用
1、参考文献末尾没有文献? 在文献条目要显示的地方点击“refresh” 2、参考文献条目没有悬挂缩进? 把“书目”添加到样式库中,修改样式为悬挂缩进1.5字符 3、交叉引用? 宏 新建一个宏 粘贴下面代码 Public Sub ZoteroLinkCita…...
需求上线,为什么要刷缓存?
在需求上线的过程中,刷缓存主要有以下几个重要原因: 一、保证数据的准确性 旧数据残留问题 缓存是为了加快数据访问速度而存储的数据副本。在需求更新后,之前缓存中的数据可能已经不符合新的业务逻辑。例如,一个电商网站修改了商…...
TVS二极管选型【EMC】
TVS器件并联在电路中,当电路正常工作时,他处于截止状态(高阻态),不影响线路正常工作,当线路处于异常过压并达到其击穿电压时,他迅速由高阻态变为低阻态,给瞬间电流提供一个低阻抗导通…...
《从入门到精通:蓝桥杯编程大赛知识点全攻略》(一)-递归实现指数型枚举、递归实现排列型枚举
本篇博客将聚焦于通过递归来实现两种经典的枚举方法:指数型枚举和排列型枚举。这两种枚举方式在计算机科学和算法竞赛中都有广泛应用,无论是在解题中,还是在实际工作中都极具价值。 目录 前言 斐波那契数列递归 递归实现指数型枚举 算法思…...
C#对线程同步的应用
什么是线程同步?线程同步的应用场景有哪些?在C#中有哪些线程同步方式?下面对这些问题做一个总结,让大家在面试的时候遇到这些问题能够游刃有余。 线程同步是指在多线程环境下,多个线程同时访问共享资源时,确…...
基于微信小程序的面部动作检测系统
引言 本技术文档旨在详细阐述一个基于微信小程序的面部动作检测系统的技术路线、实现方法及关键技术框架。系统的核心功能包括检测用户的左右转头、眨眼和张嘴动作,并根据检测结果逐步引导用户完成任务。为确保系统的安全性和准确性,特别是防止用户通过…...
Activation Functions
Chapter4:Activation Functions 声明:本篇博客笔记来源于《Neural Networks from scratch in Python》,作者的youtube 其实关于神经网络的入门博主已经写过几篇了,这里就不再赘述,附上链接。 1.一文窥见神经网络 2.神经…...
《Vue3实战教程》37:Vue3生产部署
如果您有疑问,请观看视频教程《Vue3实战教程》 生产部署 开发环境 vs. 生产环境 在开发过程中,Vue 提供了许多功能来提升开发体验: 对常见错误和隐患的警告对组件 props / 自定义事件的校验响应性调试钩子开发工具集成 然而ÿ…...
Linux:各发行版及其包管理工具
相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 Debian 包管理工具:dpkg(低级包管理器)、apt(高级包管理器,建立在dpkg基础上)包格式:…...
【计算机网络】课程 作业一 搭建连续覆盖的办公网络
作业一 搭建连续覆盖的办公网络 题目:论述题(共1题,100分) 充分利用所学习的数据链路层局域网知识,加上物理层的基础知识,请给一个办公场所(三层,每层约100平方)…...
Stitches API完全指南:从基础配置到自定义扩展
Stitches API完全指南:从基础配置到自定义扩展 【免费下载链接】stitches HTML5 Sprite Sheet Generator 项目地址: https://gitcode.com/gh_mirrors/sti/stitches Stitches是一款强大的HTML5 Sprite Sheet Generator,它提供了直观的API接口&…...
隧道裂缝剥落病害AI识别系统
我国现有公路隧道超2.5万座,总里程超2.8万公里,其中运营超过15年的老旧隧道占比达35%。据交通运输部2025年统计,年均因隧道结构病害导致的交通中断超1200次,直接经济损失超45亿元。传统检测模式暴露四大核心痛点:检测周…...
HFSS仿真结果怎么看?以T型波导为例,读懂S参数与电场动态图
HFSS仿真结果深度解析:从S参数到电场动态图的实战指南当你第一次在HFSS中完成T型波导仿真后,面对满屏的曲线和彩色云图,是否感到既兴奋又困惑?那些起伏的S参数曲线究竟告诉你什么信息?电场图中跳跃的颜色又代表怎样的物…...
从入门到上岗,Java+AI 复合型人才养成攻略
当下编程行业格局正在悄然改变,纯 Java 后端岗位内卷日趋严重,薪资增长逐步放缓;纯粹的 AI 算法岗门槛居高不下,对学历、数理功底要求严苛,普通开发者很难入局。 而Java+AI 复合型开发顺势成为行业刚需岗位,既依托成熟的 Java 体系承接业务开发,又能融入人工智能技术实…...
收藏必看|2026 版大厂 AI 岗位薪资曝光!普通程序员转型大模型最全指南
深夜收到大厂 HR 好友发来的内部资料,再三叮嘱切勿对外泄露。如今网络信息传播速度极快,这份 2026 年企业 AI 岗真实薪资内幕,也值得给广大程序员、零基础入行小白参考借鉴。 翻看完整薪资台账后,真切感受到当下大模型赛道的薪资差…...
终极艾尔登法环帧率解锁指南:轻松突破60FPS限制
终极艾尔登法环帧率解锁指南:轻松突破60FPS限制 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/el/EldenRing…...
如何进行TVA仿真引擎的“光照地狱”训练?
重磅预告:本专栏将独家连载系列丛书《智能体视觉技术与应用》部分精华内容,该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“…...
Hindsight测试策略:单元测试、集成测试和端到端测试
Hindsight测试策略:单元测试、集成测试和端到端测试 【免费下载链接】hindsight Hindsight: Agent Memory That Learns 项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight Hindsight作为一款专注于Agent Memory的开源项目,其可…...
二十六.签名与脚本(1)--脚本介绍
1.区块链脚本介绍在之前的章节中,我们了解了签名与验证相关,但是btc的交易数据,签名和验证,不是单纯的,还有脚本深度参与其中。我们从开始来:bool SendMoney(CScript scriptPubKey, int64 nValue, CWalletT…...
解决方法:庐山派K230接串口没识别到端口问题
一、插入usb转串口工具之前二、插入usb转串口工具之后三、解决方法说明:🔍 核心原因:USB Serial 设备,没有被识别为 COM 口你现在看到的 USB Serial,说明开发板已经正常启动了,USB 也被电脑识别到了&#x…...
