從零開始搭建一個SpringBoot項目

目錄

  • Spring Boot
    • Spring Boot 項目開發環境
      • 1、快速創建SpringBoot項目
      • 2、pom.xml 添加 Meavn 依賴
      • 3、配置application.yml
      • 4、驗證數據庫是否連接成功
      • 5、配置 Druid 數據源
    • Spring Boot 整合 MyBatis
      • 1、準備依賴
      • 2、application-dev.yml 配置
      • 3、啟動類添加Mapper接口掃描器
      • 4、設置日志log
      • 5、實現 MyBatis 進行增刪改查操作
        • 1、數據庫創建表格
        • 2、新建實體類和 Mapper 接口
        • 3、創建 Mapper 接口的映射文件
        • 4、新建 UserController
        • 5、功能測試
    • Spring Boot 整合 Lombok
    • Spring Boot 整合 Swagger
      • 1、添加依賴文件
      • 2、創建 Swagger 配置類
      • 3、Swagger 接口測試
    • 接口參數處理和統一響應結果
    • 接口參數處理和統一響應結果

Spring Boot

Spring Boot 項目開發環境

1、快速創建SpringBoot項目

1、打開idea 選擇 File => New => Project 選中 Spring Boot 快速創建。

如果是創建JAVA8 需要把 Server URL 地址修改為 阿里云地址 https://start.aliyun.com

在這里插入圖片描述
2、Dependencies 依賴 可以直接在這里先勾選,但我們先不選后面通過pom.xml Maven加載
在這里插入圖片描述
3、創建后的項目結構如下
在這里插入圖片描述

2、pom.xml 添加 Meavn 依賴

1、添加 spring-boot-start-web
使用SpringMVC構建web(包括RESTful)應用程序。使用Apache Tomcat作為默認的嵌入式容器。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

運行項目后,瀏覽器輸入localhost:8080 Web服務正常
在這里插入圖片描述
2、添加 Lambok 依賴
Lombok依賴可在編譯時,自動添加JavaBean結構。例如常用的getter、setter、toString、構造器和equals等方法。

<!-- lombok 依賴 -->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>

3、單元測試
對單元測試的支持在于提供了一系列注解和工具的集成

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>

4、數據庫連接依賴

 <!-- mysql驅動包 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><!-- druid --><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.14</version></dependency><!-- JDBC數據庫連接 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>

3、配置application.yml

將默認 application.properties 修改為 application.yml 添加配置更加直觀
在這里插入圖片描述
在這里插入圖片描述

# application.yml
spring:application:name: SpringBootDemoprofiles:# 使用 application-dev.yml 配置文件啟動項目active: dev
# application-dev.yml
spring:datasource:url: jdbc:mysql://localhost:3306/springboot_db?allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=falsedriver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: Hu903157935
server:# 修改啟動端口號port: 8080

4、驗證數據庫是否連接成功

在這里插入圖片描述

// ApplicationTests.java 
package com.learning.springbootdemo;import jakarta.annotation.Resource;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;@SpringBootTest
public class ApplicationTests {// 注入數據源對象@Resourceprivate DataSource dataSource;@Testpublic void dataSourceTest() throws SQLException {System.out.println("==============================================================");// 獲取數據源類型System.out.println("默認數據源為:" + dataSource.getClass());// 獲取數據庫連接對象Connection connection = dataSource.getConnection();// 判斷連接對象是否為空System.out.println(connection != null);assert connection != null;connection.close();}
}

5、配置 Druid 數據源

默認數據源-Hikari
在springboot2.0之后 , 采用的默認連接池就是Hikari, 號稱"史上最快的連接池", 所以我們沒有添加依賴也能直接用, springboot的自動配置中含有DataSourceAutoConfiguration配置類, 會先檢查容器中是否已經有連接池對象, 沒有則會使用默認的連接池, 并根據特定的屬性來自動配置連接池對象, 用到的屬性值來源于DataSourceProperties對象。

需要添加依賴和配置yml 此時加的是Druid的springboot自動配置包, 里面包含了DruidDataSourceAutoConfigure自動配置類,會自動創建druid的連接池對象, 所以springboot發現已經有連接池對象了,則不會再使用Hikari。(前面配置了,沒有自行添加)

<!-- pom.xml -->
<!-- druid -->
<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.14</version>
</dependency>
# application-dev.yml
spring:datasource:type: com.alibaba.druid.pool.DruidDataSource

Spring Boot 整合 MyBatis

1、準備依賴

<!--mybatis集成到SpringBoot中的依賴-->
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.3</version>
</dependency>

2、application-dev.yml 配置

Spring Boot 整合 MyBatis 時幾個比較需要注意的配置參數:

mybatis.config-location配置 mybatis-config.xml 路徑,mybatis-config.xml 中配置 MyBatis 基礎屬性,如果項目中配置了 mybatis-config.xml文件需要設置該參數。mybatis.mapper-locations配置 Mapper 文件對應的 XML 文件路徑。mybatis.type-aliases-package配置項目中實體類包路徑

我們只配置 mapper-locations 即可,最終的 application-dev.yml文件如下:

mybatis:
#  config-location: classpath:mybatis-config.xml
mapper-locations: classpath:mapper/*Dao.xml
#  type-aliases-package: com.learning.springboot.springbootdemo

3、啟動類添加Mapper接口掃描器

在啟動類中添加對 Mapper 包掃描 @MapperScan,Spring Boot 啟動的時候會自動加載包路徑下的 Mapper 接口:

@SpringBootApplication
@MapperScan("com.learning.springbootdemo.dao") // 添加 @Mapper 注解
public class SpringBootDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringBootDemoApplication.class, args);}
}

當然也可以直接在每個 Mapper 接口上面添加 @Mapper 注解,但是如果 Mapper 接口數量較多,在每個 Mapper 加注解是挺繁瑣的,建議使用掃描注解。

4、設置日志log

logging:level: root: infofile:name:springboot-site.log

5、實現 MyBatis 進行增刪改查操作

1、數據庫創建表格

首先創建了springboot_db 的數據庫,之后在數據庫中新建了一個名稱為 tb_user 的數據表,表中有 id , name , password 三個字段,在測試時可以直接將以上 SQL 拷貝到 MySQL 中執行即可。

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `springboot_db` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `springboot_db`;
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',`name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '登錄名',`password` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '密碼',PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
2、新建實體類和 Mapper 接口

1、在 entity 包下新建 User 類,將 tb_user 中的字段映射到該實體類中:

package com.learning.springbootdemo.entity;public class User {private Integer id;private String name;private String password;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

2、在 dao 包中新建 UserDao 接口,并定義增刪改查四個接口:

package com.learning.springbootdemo.dao;import com.learning.springbootdemo.entity.User;import java.util.List;public interface UserDao {/*** 返回數據列表*/List<User> findAllUsers();/*** 添加*/int insertUser(User User);/*** 修改*/int updUser(User User);/*** 刪除*/int delUser(Integer id);
}
3、創建 Mapper 接口的映射文件

在 resources/mapper 目錄下新建 Mapper 接口的映射文件 UserDao.xml,之后進行映射文件的編寫。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- 配置文件頭 不加會報錯 文檔根元素 "mapper" 必須匹配 DOCTYPE"null"-->
<!-- 1、首先,定義映射文件與 Mapper 接口的對應關系,比如該示例中,需要將 UserDao.xml 的與對應的 UserDao 接口類之間的關系定義出來: -->
<mapper namespace="com.learning.springbootdemo.dao.UserDao"><!-- 2、配置表結構和實體類的對應關系:--><resultMap type="com.learning.springbootdemo.entity.User" id="UserResult"><result property="id" column="id"/><result property="name" column="name"/><result property="password" column="password"/></resultMap><!-- 3、針對對應的接口方法,編寫具體的 SQL 語句,最終的 UserDao.xml 文件如下: --><select id="findAllUsers" resultMap="UserResult">select id,name,password from tb_userorder by id desc</select><insert id="insertUser" parameterType="com.learning.springbootdemo.entity.User">insert into tb_user(name,password)values(#{name},#{password})</insert><update id="updUser" parameterType="com.learning.springbootdemo.entity.User">update tb_usersetname=#{name},password=#{password}where id=#{id}</update><delete id="delUser" parameterType="int">delete from tb_user where id=#{id}</delete>
</mapper>
4、新建 UserController

為了對 MyBatis 進行功能測試,在 controller 包下新建 UserController 類,并新增 4 個方法分別接收對于 tb_user 表的增刪改查請求,代碼如下:

package com.learning.springbootdemo.controller;import com.alibaba.druid.util.StringUtils;
import com.learning.springbootdemo.dao.UserDao;
import com.learning.springbootdemo.entity.User;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
public class UserController {@ResourceUserDao userDao;// 查詢所有記錄@GetMapping("/users/mybatis/queryAll")public List<User> queryAll() {return userDao.findAllUsers();}// 新增一條記錄@GetMapping("/users/mybatis/insert")public Boolean insert(String name, String password) {if (StringUtils.isEmpty(name) || StringUtils.isEmpty(password)) {return false;}User user = new User();user.setName(name);user.setPassword(password);return userDao.insertUser(user) > 0;}// 修改一條記錄@GetMapping("/users/mybatis/update")public Boolean insert(Integer id, String name, String password) {if (id == null || id < 1 || StringUtils.isEmpty(name) || StringUtils.isEmpty(password)) {return false;}User user = new User();user.setId(id);user.setName(name);user.setPassword(password);return userDao.updUser(user) > 0;}// 刪除一條記錄@GetMapping("/users/mybatis/delete")public Boolean insert(Integer id) {if (id == null || id < 1) {return false;}return userDao.delUser(id) > 0;}
}
5、功能測試

1、啟動 Spring Boot 項目
2、瀏覽器輸入測試地址

查詢:http://localhost:8080/users/mybatis/queryAll
新增:http://localhost:8080/users/mybatis/insert?name=mybatis1&password=1233333
修改:http://localhost:8080/users/mybatis/update?id=3&name=mybatis2&password=1233222
刪除:http://localhost:8080/users/mybatis/delete?id=3

Spring Boot 整合 Lombok

Lombok 項目是一個第三方的 Java 工具庫,它會自動插入編輯器和構建工具中,Lombok 提供了一組非常有用的注釋,用來消除 Java 類中的大量樣板代碼,比如 setter getter 方法、構造方法等等, 僅僅在原來的 JavaBean 類上使用 @Data 注解就可以替換數百行代碼從而使代碼變得更加清爽、簡潔且易于維護。

注意:Lombok 它并不是一個必要的插件。暫時先跳過。

Spring Boot 整合 Swagger

Swagger 是一款 RESTful 接口的文檔在線自動生成+功能測試功能軟件

它可以輕松的整合到 Spring Boot 中并生成 RESTful API 文檔,既可以減少我們創建文檔的工作量,同時說明內容又整合入實現代碼中,讓維護文檔和修改代碼整合為一體,可以讓我們在修改代碼邏輯的同時方便的修改文檔說明,另外 Swagger 也提供了強大的頁面測試功能來調試每個 API 接口。

1、添加依賴文件

首先,在 pom.xml 中加入 Swagger 的依賴信息,如下:

<!-- swagger --><dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.0.2</version></dependency>

2、創建 Swagger 配置類

新建 config 包,在 config 包中新增 Swagger2Config.java,代碼如下:

package com.learning.springbootdemo.config;import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class SpringDocConfig {// 掃描路徑private static final String basePackage = "com.learning.springbootdemo.controller";// 請求頭名稱private static final String headerName = "token";@Beanpublic GroupedOpenApi group01() {return GroupedOpenApi.builder().group("group01").addOperationCustomizer((operation, handlerMethod) -> {operation.addSecurityItem(new SecurityRequirement().addList(headerName));return operation;}).packagesToScan(basePackage).build();}@Beanpublic OpenAPI customOpenAPI() {Components components = new Components();//添加右上角的統一安全認證components.addSecuritySchemes(headerName,new SecurityScheme().type(SecurityScheme.Type.APIKEY).scheme("basic").name(headerName).in(SecurityScheme.In.HEADER).description("請求頭"));return new OpenAPI().components(components).info(apiInfo());}private Info apiInfo() {Contact contact = new Contact();contact.setName("Wannaer");return new Info().title("Swagger文檔").version("1.0").contact(contact).license(new License().name("Apache 2.0").url("http://springdoc.org"));}
}

group01() 方法用于返回生成 Swagger API 時的接口摘要信息,也是在該方法中指定需要掃描的控制器包路徑,只有此路徑下的 Controller 類才會自動生成 Swagger API 文檔。如果想要根據不同的包對 API 文檔進行分組,可以配置多個 GroupedOpenApi 實例,比如再寫一個方法 group02,掃描的包是 cn.lanqiao.springboot3.controller2。

apiInfo() 方法中主要是配置一些基礎信息,包括配置頁面展示的基本信息包括,標題、描述、版本、服務條款、聯系方式等。

配置完成之后啟動項目,在瀏覽器中輸入網址 /swagger-ui/index.html,即可看到 Swagger 頁面,效果如下:
在這里插入圖片描述
此時只有基礎的配置信息,并沒有文檔信息,接下來我們需要在我們的 Controller 類。

@Tag(name = "用戶模塊接口")
@RestController
public class UserController {// 查詢所有記錄@Operation(summary = "查詢所有記錄")@GetMapping("/users/mybatis/queryAll")public List<User> queryAll() {return userDao.findAllUsers();}
}

在項目啟動成功后,查看swagger接口文檔頁面 包括參數信息、請求方法、注意事項等等我們已經在代碼中定義的信息都會在接口文檔中顯示。
在這里插入圖片描述

// 完整 UserController 代碼
package com.learning.springbootdemo.controller;import com.alibaba.druid.util.StringUtils;
import com.learning.springbootdemo.dao.UserDao;
import com.learning.springbootdemo.entity.User;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@Tag(name = "用戶模塊接口")
@RestController
public class UserController {@ResourceUserDao userDao;// 查詢所有記錄@Operation(summary = "查詢所有記錄")@GetMapping("/users/mybatis/queryAll")public List<User> queryAll() {return userDao.findAllUsers();}// 新增一條記錄@Operation(summary = "新增用戶", description = "根據User對象新增用戶")@GetMapping("/users/mybatis/insert")public Boolean insert(String name, String password) {if (StringUtils.isEmpty(name) || StringUtils.isEmpty(password)) {return false;}User user = new User();user.setName(name);user.setPassword(password);return userDao.insertUser(user) > 0;}// 修改一條記錄@GetMapping("/users/mybatis/update")public Boolean insert(Integer id, String name, String password) {if (id == null || id < 1 || StringUtils.isEmpty(name) || StringUtils.isEmpty(password)) {return false;}User user = new User();user.setId(id);user.setName(name);user.setPassword(password);return userDao.updUser(user) > 0;}// 刪除一條記錄@GetMapping("/users/mybatis/delete")public Boolean insert(Integer id) {if (id == null || id < 1) {return false;}return userDao.delUser(id) > 0;}
}

3、Swagger 接口測試

首先我們點進列表接口,接口的右上方有 Try it out 按鈕,點擊它來嘗試發送請求。
在這里插入圖片描述
之后頁面上會出現 Execute 按鈕,點擊它之后會實際的向后端發送用戶列表請求,請求成功后可以在頁面中看到請求信息,以及返回數據,在 Response body 信息框中我們可以看到兩條用戶數據,接口請求成功且數據如預期中的數據一致,證明這個接口是沒有問題的,結果如下圖所示。
在這里插入圖片描述

接口參數處理和統一響應結果

關于傳參的規范和返回結果的統一,盡可能的使得控制層業務層處理的數據格式統一化,保證了接口和編碼規范的統一性。
規范的參數定義和結果響應極大程度的降低了開發成本及溝通成本。

接口參數處理和統一響應結果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/15645.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15645.shtml
英文地址,請注明出處:http://en.pswp.cn/web/15645.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

BWVS 靶場測試

一、PHP弱類型 is_numeric() 輸入&#xff1a;127.0.0.1/BWVS/bug/php/code.php # 1、源代碼分析 如果num不是數字&#xff0c;那么就輸出num&#xff0c;同時如果num1&#xff0c;就輸出flag。即num要是字符串又要是數字 # 2、函數分析&#xff1a; is_numeric()函數&…

使用Nginx的Mirror模塊的指南

Nginx 是一個廣泛使用的 web 服務器和反向代理服務器&#xff0c;性能出色且易于配置。Nginx 提供了各種模塊來擴展其功能&#xff0c;其中一個有用的模塊是 mirror 模塊。本文將詳細介紹 Nginx 的 mirror 模塊&#xff0c;包括其用途、使用場景、注意事項以及示例代碼。 1. m…

《最新出爐》系列入門篇-Python+Playwright自動化測試-40-錄制生成腳本

宏哥微信粉絲群&#xff1a;https://bbs.csdn.net/topics/618423372 有興趣的可以掃碼加入 1.簡介 各種自動化框架都會有腳本錄制功能&#xff0c; playwright這么牛叉當然也不例外。很早之前的selenium、Jmeter工具&#xff0c;發展到每種瀏覽器都有對應的錄制插件。今天我們…

牛客NC392 參加會議的最大數目【中等 貪心+小頂堆 Java/Go/PHP 力扣1353】

題目 題目鏈接&#xff1a; https://www.nowcoder.com/practice/4d3151698e33454f98bce1284e553651 https://leetcode.cn/problems/maximum-number-of-events-that-can-be-attended/description/ 思路 貪心優先級隊列Java代碼 import java.util.*;public class Solution {/**…

java面試高級篇(JVM、Mysql、Redis、Kafka)

文章目錄 面試專題-java高級篇1. JVM有做過jvm的調優嗎?常用的jvm參數調優有哪些?如果jvm持續一段時間頻繁的發生Young GC (輕GC) 可能原因有哪些? 2. Mysql2.1. 基本功(見為知筆記)2.2. 什么是索引2.3. 索引的優劣勢2.4. MySQL的索引結構2.4.1. B-Tree索引2.4.2. BTree索引…

外賣系統源碼開發全攻略:外賣小程序與后臺管理系統的設計與實現

今天&#xff0c;小編將詳細介紹外賣系統源碼的開發全攻略&#xff0c;從需求分析到設計與實現&#xff0c;為開發者提供全面指導。 一、需求分析 1.用戶需求 用戶是外賣系統的核心&#xff0c;需滿足以下基本需求&#xff1a; -瀏覽菜單并下單 -實時追蹤訂單 -多種支付方…

每日一題——博弈論(枚舉與暴力)

博弈論 題目描述 運行代碼 #include<iostream> #include<vector> using namespace std; int main(){int n;cin >> n;vector<int> d(n,0);for(int i 0;i < n;i){cin >> d[i];}vector<int> in(1000,0);for(int k 1;k<3;k){for(int…

ESP32燒錄AT固件并進行MQTT通訊

首先下載AT固件 發布的固件 - ESP32 - — ESP-AT 用戶指南 latest 文檔 下載燒錄工具 下載指導 - ESP32 - — ESP-AT 用戶指南 latest 文檔 燒錄后注意usb的串口是不能發AT指令的 需要用16和17腳 用AT指令確認OK后連WIFI ATCWMODE1 //設置客戶端模式 ATCWLAP …

mysql誤刪后使用binlog恢復數據

1 預期效果 使用 binlog 恢復數據的預期效果是將誤刪的數據還原到誤刪之前的狀態&#xff0c;以減少或消除數據丟失的影響。通過正確解析和執行 binlog 中的操作記錄&#xff0c;可以重新執行誤刪操作之后的插入、更新或刪除操作&#xff0c;從而恢復被誤刪的數據。 數據恢復&…

Cocos Creator 編輯器的數據綁定詳解

Cocos Creator 是一款由 Cocos 平臺推出的游戲開發工具&#xff0c;它集成了圖形化編輯器、腳本引擎和資源管理器等功能&#xff0c;方便開發者快速地創建游戲。其中&#xff0c;數據綁定是 Cocos Creator 編輯器中非常重要的一個功能&#xff0c;它可以幫助開發者實現頁面元素…

三生隨記——山洞之謎

第一章&#xff1a;初識山洞 在遠離人煙的深山之中&#xff0c;隱藏著一個鮮為人知的山洞。這個山洞名叫幽洞&#xff0c;它的名字在當地人的口中帶著一股說不出的詭異和神秘。據說&#xff0c;幽洞深不見底&#xff0c;里面充滿了未知的恐懼和危險。然而&#xff0c;對于好奇心…

Go微服務: Grpc服務注冊在Consul的示例(非Go-Micro)

概述 現在&#xff0c;我們使用consul客戶端的api來把GRPC服務實現注冊到consul上&#xff0c;非Go-Micro的形式其實&#xff0c;consul官方提供了對應的接口調用來實現&#xff0c;golang中的consul/api包對其進行了封裝我們使用consul/api來進行展示 目錄結構 gitee.com/g…

springboot+mysql在線考試系統-計算機畢業設計源碼82584

摘 要 信息化社會內需要與之針對性的信息獲取途徑&#xff0c;但是途徑的擴展基本上為人們所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人們經常能夠獲得不同類型信息&#xff0c;這也是技術最為難以攻克的課題。針對在線考試等問題&#xff0c;對如何通過計算…

Websocket助手

功能介紹 WS助手是WebSocket調試的開發工具&#xff0c;該客戶端工具可以幫助開發人員快速連接到測試/生產環境&#xff0c;它可以幫助您監視和分析 Websocket 消息&#xff0c;并在開發過程中解決問題&#xff1b;可以模擬客戶端實現與服務器的數據交互&#xff0c;并完成批量…

論文精讀:HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face

HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face Status: Reading Author: Dongsheng Li, Kaitao Song, Weiming Lu, Xu Tan, Yongliang Shen, Yueting Zhuang Institution: 微軟亞洲研究院&#xff08;Microsoft Research Asia&#xff09;, 浙江…

uniapp 對接 微信App/支付寶App 支付

相關文檔&#xff1a;uni.requestPayment(OBJECT) | uni-app官網 示例代碼&#xff1a; import qs from qsasync aliPay(){const { provider } await uni.getProvider({ service:payment })if(provider.includes(alipay)){uni.request({url:后端接口地址,data:{ //傳參 },suc…

? 傳知代碼 ? 基于擴散模型的無載體圖像隱寫術

&#x1f49b;前情提要&#x1f49b; 本文是傳知代碼平臺中的相關前沿知識與技術的分享~ 接下來我們即將進入一個全新的空間&#xff0c;對技術有一個全新的視角~ 本文所涉及所有資源均在傳知代碼平臺可獲取 以下的內容一定會讓你對AI 賦能時代有一個顛覆性的認識哦&#x…

前端---閉包【防抖以及節流】----面試高頻!

1.什么閉包 釋放閉包 從以上看出&#xff1a;一般函數調用一次會把內部的數據進行清除--但是這種操作卻可以一起保留局部作用域的數據 // 優點:1、可以讀取函數內部的變量 2、讓這些變量始中存在局部作用域當中 2.閉包產生的兩種業務場景&#xff1a;防抖、節流 2.1防抖 舉…

QGraphicsView實現簡易地圖16『爆炸效果』

前文鏈接&#xff1a;QGraphicsView實現簡易地圖15『測量面積』 一種簡單的爆炸波擴散效果 動態演示效果&#xff1a; 靜態展示圖片&#xff1a; 核心代碼&#xff1a; #pragma once #include "../AbstractGeoItem.h" #include "DataStruct/GeoData.h"…

sysbench壓測mysql性能測試命令和報告

sysbench壓測mysql性能測試命令和報告 一、安裝sysbench工具二、創建測試數據庫三、基于sysbench構造測試表和測試數據四、數據庫性能測試1、數據庫讀寫性能測試2、數據庫讀性能測試3、數據庫刪除性能測試4、數據庫更新索引字段性能測5、數據庫更新非索引字段性能測試6、數據庫…