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

Spring Boot 项目开发流程全解析

目录

引言

一、开发环境准备

二、创建项目

三、项目结构

四、开发业务逻辑

1.创建实体类:

2.创建数据访问层(DAO):

3.创建服务层(Service):

4.创建控制器层(Controller):

五、配置文件

1.application.properties 或 application.yml:

2.日志配置:

六、测试

1.单元测试:

2.集成测试:

七、部署

1.打包项目:

2.部署方式:

总结:


引言

在当今的 Java 开发领域,Spring Boot 以其便捷、高效的特性成为了众多开发者的首选。本文将详细介绍 Spring Boot 完整的项目开发流程,并突出关键要点。

一、开发环境准备

  1. 1.安装 JDK:确保安装了合适版本的 Java Development Kit(JDK),Spring Boot 通常需要 JDK 8 及以上版本。

  2. 2.安装 IDE:如 IntelliJ IDEA 或 Eclipse,这些集成开发环境提供了丰富的功能,方便开发 Spring Boot 项目。

  3. 3.配置 Maven 或 Gradle:Spring Boot 项目可以使用 Maven 或 Gradle 进行构建管理。确保在开发环境中正确配置了构建工具,并了解其基本使用方法。

  4. 二、创建项目

    1. 使用 Spring Initializr:Spring Initializr 是一个快速创建 Spring Boot 项目的工具。可以通过访问Spring Initializr 官网或者在 IDE 中使用插件来创建项目。选择项目配置:在创建项目时,需要选择项目的基本信息,如项目名称、包名、依赖等。根据项目需求选择合适的依赖,例如 Web 开发可以选择 spring-boot-starter-web。

    2. 三、项目结构

      1.目录结构:

      src/main/java:存放 Java 源代码。

      src/main/resources:存放配置文件、静态资源等。

      src/test/java:存放测试代码。

      src/test/resources:存放测试资源文件。

      2.关键文件:

      application.properties 或 application.yml:项目的配置文件,可以配置数据库连接、日志级别等。

      pom.xml(Maven)或 build.gradle(Gradle):项目的构建文件,用于管理项目依赖。

    3. 四、开发业务逻辑

      1.创建实体类:

    4. 根据业务需求创建实体类,通常使用 Java 对象来表示数据库中的表。

    5. 例如:

    6. package com.example.demo.entity;

    7. import javax.persistence.Entity;

    8. import javax.persistence.GeneratedValue;

    import javax.persistence.GenerationType;import javax.persistence.Id;
    
    1. @Entity
    public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String name;private String email;// 构造函数、getter 和 setter 方法}### 2.创建数据访问层(DAO):
    
    1. 使用 Spring Data JPA 或其他数据库访问技术创建数据访问层,实现对数据库的操作。

    2. 例如:

    package com.example.demo.repository;import com.example.demo.entity.User;import org.springframework.data.jpa.repository.JpaRepository;public interface UserRepository extends JpaRepository<User, Long> {}### 3.创建服务层(Service):
    
    1. 在服务层实现业务逻辑,调用数据访问层进行数据库操作。

    2. 例如:

    1.package com.example.demo.service;
    
    1. import com.example.demo.entity.User;
    import java.util.List;public interface UserService {User saveUser(User user);User getUserById(Long id);List<User> getAllUsers();void deleteUser(Long id);}
    
    1. 2.package com.example.demo.service.impl;
    import com.example.demo.entity.User;import com.example.demo.repository.UserRepository;import com.example.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class UserServiceImpl implements UserService {@Autowiredprivate UserRepository userRepository;@Overridepublic User saveUser(User user) {return userRepository.save(user);}@Overridepublic User getUserById(Long id) {return userRepository.findById(id).orElse(null);}@Overridepublic List<User> getAllUsers() {return userRepository.findAll();}@Overridepublic void deleteUser(Long id) {userRepository.deleteById(id);}}### 4.创建控制器层(Controller):
    
    1. 创建控制器类,处理 HTTP 请求,调用服务层实现业务逻辑,并返回响应结果。

    2. 例如:

    package com.example.demo.controller;import com.example.demo.entity.User;import com.example.demo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.\*;import java.util.List;@RestController@RequestMapping("/users")public class UserController {@Autowiredprivate UserService userService;@PostMappingpublic ResponseEntity<User> saveUser(@RequestBody User user) {User savedUser = userService.saveUser(user);return new ResponseEntity<>(savedUser, HttpStatus.CREATED);}@GetMapping("/{id}")public ResponseEntity<User> getUserById(@PathVariable Long id) {User user = userService.getUserById(id);if (user!= null) {return new ResponseEntity<>(user, HttpStatus.OK);} else {return new ResponseEntity<>(HttpStatus.NOT\_FOUND);}}@GetMappingpublic ResponseEntity<List<User>> getAllUsers() {List<User> users = userService.getAllUsers();return new ResponseEntity<>(users, HttpStatus.OK);}@DeleteMapping("/{id}")public ResponseEntity<Void> deleteUser(@PathVariable Long id) {userService.deleteUser(id);return new ResponseEntity<>(HttpStatus.NO\_CONTENT);}}
    
    1. 五、配置文件
    ------### 1.application.properties 或 application.yml:
    
    1. 可以在配置文件中配置数据库连接、服务器端口、日志级别等。

    2. 例如:

    server.port=8080spring.datasource.url=jdbc:mysql://localhost:3306/mydbspring.datasource.username=rootspring.datasource.password=passwordspring.jpa.hibernate.ddl-auto=update### 2.日志配置:
    
    1. 可以配置日志级别、输出格式等,以便在开发和生产环境中更好地跟踪问题。

    2. 例如:

    logging.level.root=INFOlogging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} \[%thread\] %-5level %logger{36} - %msg%n
    
    1. 六、测试

    ----### 1.单元测试:
    
    1. 使用 JUnit 和 Mockito 等测试框架编写单元测试,测试业务逻辑的各个部分。

    2. 例如:

    package com.example.demo.service.impl;import com.example.demo.entity.User;import com.example.demo.repository.UserRepository;import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.Test;import org.mockito.InjectMocks;import org.mockito.Mock;import org.mockito.MockitoAnnotations;import java.util.Optional;import static org.junit.jupiter.api.Assertions.assertEquals;import static org.mockito.Mockito.when;class UserServiceImplTest {@InjectMocksprivate UserServiceImpl userService;@Mockprivate UserRepository userRepository;@BeforeEachvoid setUp() {MockitoAnnotations.initMocks(this);}@Testvoid saveUser() {User user = new User();user.setName("John");user.setEmail("john@example.com");when(userRepository.save(user)).thenReturn(user);User savedUser = userService.saveUser(user);assertEquals(user.getName(), savedUser.getName());assertEquals(user.getEmail(), savedUser.getEmail());}@Testvoid getUserById() {Long id = 1L;User user = new User();user.setId(id);user.setName("John");user.setEmail("john@example.com");when(userRepository.findById(id)).thenReturn(Optional.of(user));User foundUser = userService.getUserById(id);assertEquals(user.getName(), foundUser.getName());assertEquals(user.getEmail(), foundUser.getEmail());}}### 2.集成测试:
    
    1. 编写集成测试,测试整个应用的功能。可以使用 Spring Boot 的测试框架,如 @SpringBootTest 注解。

    2. 例如:

    package com.example.demo;import com.example.demo.controller.UserController;import com.example.demo.entity.User;import com.example.demo.service.UserService;import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.boot.test.web.client.TestRestTemplate;import org.springframework.http.HttpEntity;import org.springframework.http.HttpMethod;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import java.util.List;import static org.junit.jupiter.api.Assertions.assertEquals;import static org.junit.jupiter.api.Assertions.assertNotNull;@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM\_PORT)class DemoApplicationTests {@Autowiredprivate UserController userController;@Autowiredprivate UserService userService;@Autowiredprivate TestRestTemplate restTemplate;@BeforeEachvoid setUp() {userService.deleteAll();}@Testvoid contextLoads() {}@Testvoid saveUser() {User user = new User();user.setName("John");user.setEmail("john@example.com");HttpEntity<User> request = new HttpEntity<>(user);ResponseEntity<User> response = restTemplate.postForEntity("/users", request, User.class);assertEquals(HttpStatus.CREATED, response.getStatusCode());assertNotNull(response.getBody());assertEquals(user.getName(), response.getBody().getName());assertEquals(user.getEmail(), response.getBody().getEmail());}@Testvoid getUserById() {User user = new User();user.setName("John");user.setEmail("john@example.com");User savedUser = userService.saveUser(user);ResponseEntity<User> response = restTemplate.getForEntity("/users/{id}", User.class, savedUser.getId());assertEquals(HttpStatus.OK, response.getStatusCode());assertNotNull(response.getBody());assertEquals(user.getName(), response.getBody().getName());assertEquals(user.getEmail(), response.getBody().getEmail());}@Testvoid getAllUsers() {User user1 = new User();user1.setName("John");user1.setEmail("john@example.com");User savedUser1 = userService.saveUser(user1);User user2 = new User();user2.setName("Jane");user2.setEmail("jane@example.com");User savedUser2 = userService.saveUser(user2);ResponseEntity<List> response = restTemplate.getForEntity("/users", List.class);assertEquals(HttpStatus.OK, response.getStatusCode());assertNotNull(response.getBody());assertEquals(2, response.getBody().size());}@Testvoid deleteUser() {User user = new User();user.setName("John");user.setEmail("john@example.com");User savedUser = userService.saveUser(user);restTemplate.delete("/users/{id}", savedUser.getId());ResponseEntity<User> response = restTemplate.getForEntity("/users/{id}", User.class, savedUser.getId());assertEquals(HttpStatus.NOT\_FOUND, response.getStatusCode());}}1.  七、部署----### 1.打包项目:2.  使用 Maven 或 Gradle 打包项目,生成可执行的 JAR 或 WAR 文件。### 2.部署方式:3.  可以将打包后的文件部署到服务器上,如 Tomcat、Jetty 等,或者使用容器化技术,如 Docker。4.  总结:---1.  Spring Boot 项目开发流程涵盖了从环境准备到部署的各个环节,通过合理的规划和实践,可以高效地开发出稳定、可靠的应用程序。在开发过程中,关键要点包括正确选择依赖、合理设计项目结构、编写高质量的测试代码以及灵活配置项目。希望本文对大家在 Spring Boot 项目开发中有所帮助
    

相关文章:

Spring Boot 项目开发流程全解析

目录 引言 一、开发环境准备 二、创建项目 三、项目结构 四、开发业务逻辑 1.创建实体类&#xff1a; 2.创建数据访问层&#xff08;DAO&#xff09;&#xff1a; 3.创建服务层&#xff08;Service&#xff09;&#xff1a; 4.创建控制器层&#xff08;Controller&…...

基于互联网协议的诊断通信(DoIP)

1、ISO 13400标准和其他汽车网络协议标准有何不同&#xff1f; ISO 13400 标准即 DoIP 协议标准&#xff0c;与其他常见汽车网络协议标准&#xff08;如 CAN、LIN、FlexRay 等&#xff09;有以下不同&#xff1a; 通信基础与适用场景 ISO 13400&#xff1a;基于互联网协议&a…...

MacDroid for Mac v2.3 安卓手机文件传输助手 支持M、Intel芯片 4.7K

MacDroid 是Mac毒搜集到的一款安卓手机文件传输助手&#xff0c;在Mac和Android设备之间传输文件。您只需要将安卓手机使用 USB 连接到 Mac 电脑上即可将安卓设备挂载为本地磁盘&#xff0c;就像编辑mac磁盘上的文件一样编辑安卓设备上的文件&#xff0c;MacDroid支持所有 Andr…...

Skywalking介绍,Skywalking 9.4 安装,SpringBoot集成Skywalking

一.Skywalking介绍 Apache SkyWalking是一个开源的分布式追踪与性能监视平台&#xff0c;特别适用于微服务架构、云原生环境以及基于容器&#xff08;如Docker、Kubernetes&#xff09;的应用部署。该项目由吴晟发起&#xff0c;并已加入Apache软件基金会的孵化器&#xff0c;…...

基于POI的Excel下拉框自动搜索,包括数据验证的单列删除

目录 目标 例子 1.搜索下拉框页 2.数据源页 3.效果 代码以及注意事项 1.代码 2.注意事项 1.基于Excel的话&#xff0c;相当于加入了一个【数据验证】 2.代码中的一些方法说明 目标 期望在Excel利用代码创建具备自动搜索功能的下拉框 例子 1.搜索下拉框页 2.数据源…...

std::allocator_traits 能做但 std::allocator 不能的事情

&#x1f31f; std::allocator_traits 能做但 std::allocator 不能的事情 1️⃣ 适配自定义分配器 假设你要实现一个内存池 MyAllocator&#xff0c;而 STL 容器默认使用的是 std::allocator。 如果你希望 STL 容器可以使用你的 MyAllocator&#xff0c;你 不能直接用 std::a…...

深度解析Ant Design Pro 6开发实践

深度解析Ant Design Pro 6全栈开发实践&#xff1a;从架构设计到企业级应用落地 一、Ant Design Pro 6核心特性与生态定位&#xff08;技术架构分析&#xff09; 作为Ant Design生态体系的旗舰级企业应用中台框架&#xff0c;Ant Design Pro 6基于以下技术栈实现突破性升级&am…...

flutter 局部刷新控件Selector源码实现原理

Flutter 中的 Selector 组件是 provider 包提供的一个优化工具&#xff0c;用于在状态管理中仅选择所需数据片段&#xff0c;避免不必要的 Widget 重建。其实现原理基于以下几个关键点&#xff1a; 1. 核心设计目标 选择性重建&#xff1a;仅当特定数据变化时触发 Widget 重建&…...

Hadoop之01:HDFS分布式文件系统

HDFS分布式文件系统 1.目标 理解分布式思想学会使用HDFS的常用命令掌握如何使用java api操作HDFS能独立描述HDFS三大组件namenode、secondarynamenode、datanode的作用理解并独立描述HDFS读写流程HDFS如何解决大量小文件存储问题 2. HDFS 2.1 HDFS是什么 HDFS是Hadoop中的一…...

vite+react+ts如何集成redux状态管理工具,实现持久化缓存

1.安装插件 这里的redux-persist--进行数据的持久化缓存&#xff0c;确保页面刷新数据不会丢失 yarn add react-redux^9.2.0 redux-persist^6.0.0 reduxjs/toolkit^2.5.1 2.创建仓库文件夹 在项目的src文件夹下创建名为store的文件夹&#xff0c;里面的具体文件如下 featur…...

文字的力量

不知道以前的时代的年轻人有没有这样的感受。现在我觉得自己是不是出现了认知偏差&#xff0c;发现在很多描写现在的二十几岁年轻人的成长经历的文字下面都会出现很多共鸣&#xff0c;包括我自己也有&#xff0c;就让我有一个错觉:是不是中国所有的和我同龄的年轻人都是这样过来…...

网络空间安全(4)web应用程序安全要点

前言 Web应用程序安全是确保Web应用程序、服务和服务器免受网络攻击和威胁的关键环节。 一、编写安全的代码 输入验证与过滤&#xff1a;确保所有的用户输入都被正确验证和过滤&#xff0c;以防止注入攻击等安全漏洞。开发者应对URL、查询关键字、HTTP头、POST数据等进行严格的…...

openwebUI访问vllm加载deepseek微调过的本地大模型

文章目录 前言一、openwebui安装二、配置openwebui环境三、安装vllm四、启动vllm五、启动openwebui 前言 首先安装vllm&#xff0c;然后加载本地模型&#xff0c;会起一个端口好。 在安装openwebui,去访问这个端口号。下面具体步骤的演示。 一、openwebui安装 rootautodl-co…...

安全测试之五:SQL Server注入漏洞几个实例

示例 1&#xff1a;在 GET 请求中测试 SQL 注入 最简单且有时最有效的情况是针对登录页面进行测试。当登录页面请求用户输入用户名和密码时&#xff0c;攻击者可以尝试输入以下字符串 “ or 11”&#xff08;不包含双引号&#xff09;&#xff1a; https://vulnerable.web.ap…...

计算机毕业设计SpringBoot+Vue.js线上辅导班系统(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

C#委托(delegate)的常用方式

C# 中委托的常用方式&#xff0c;包括委托的定义、实例化、不同的赋值方式以及匿名委托的使用。 委托的定义 // 委托的核心是跟委托的函数结构一样 public delegate string SayHello(string c);public delegate string SayHello(string c);&#xff1a;定义了一个公共委托类型 …...

《白帽子讲 Web 安全》之移动 Web 安全

目录 摘要 一、WebView 简介 二、WebView 对外暴露 WebView 对外暴露的接口风险 三、通用型 XSS - Universal XSS 介绍 四、WebView 跨域访问 五、与本地代码交互 js 5.1接口暴露风险&#xff1a; 5.2漏洞利用&#xff1a; 5.3JavaScript 与 Native 代码通信 六、Chr…...

【Tourism】Yongzhou

永州市&#xff08;英文&#xff1a;Yongzhou city、Yungchow city&#xff09;是湖南省辖地级市&#xff0c;简称“永”&#xff0c;别称“零陵”或“潇湘”。位于湖南南部&#xff0c;潇、湘二水汇合处&#xff0c;地势三面环山、地貌复杂多样。截至2022年10月&#xff0c;永…...

C语言--预处理详解

预处理详解 1. 预定义符号 C语言设置了一些预定义符号&#xff0c;可以直接使用&#xff0c;预定义符号也是在预处理期间处理的。 __FILE__ //进行编译的源文件__LINE__ //文件当前的行号__DATE__ //文件被编译的日期__TIME__ //文件被编译的时间__STDC__ //如果编译器遵循A…...

不要升级,Flutter Debug 在 iOS 18.4 beta 无法运行,提示 mprotect failed: Permission denied

近期如果有开发者的 iOS 真机升级到 18.4 beta&#xff0c;大概率会发现在 debug 运行时会有 Permission denied 的相关错误提示&#xff0c;其实从 log 可以很直观看出来&#xff0c;就是 Dart VM 在初始化时&#xff0c;对内核文件「解释运行&#xff08;JIT&#xff09;」时…...

Kubespray部署企业级高可用K8S指南

目录 前言1 K8S集群节点准备1.1 主机列表1.2 kubespray节点python3及pip3准备1.2.1. 更新系统1.2.2. 安装依赖1.2.3. 下载Python 3.12源码1.2.4. 解压源码包1.2.5. 编译和安装Python1.2.6. 验证安装1.2.7. 设置Python 3.12为默认版本&#xff08;可选&#xff09;1.2.8. 安装pi…...

基于zookeeper搭建kafka集群

1、什么是kafka Kafka 是一款开源的分布式流处理平台&#xff0c;最初由 LinkedIn 开发&#xff0c;后由 Apache 基金会维护。它被设计用于高吞吐、可扩展的实时数据管道和流处理场景。Kafka 的核心功能包括发布和订阅消息流、持久化存储数据以及实时处理数据流。其架构基于生…...

Linux操作系统5- 补充知识(可重入函数,volatile关键字,SIGCHLD信号)

上篇文章&#xff1a;Linux操作系统5-进程信号3&#xff08;信号的捕捉流程&#xff0c;信号集&#xff0c;sigaction&#xff09;-CSDN博客 本篇Gitee仓库&#xff1a;myLerningCode/l26 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 目录 一. 可重入…...

PyCharm中通过命令行执行`pip`命令下载到哪里了:虚拟环境目录下

PyCharm中通过命令行执行pip命令下载到哪里了:虚拟环境目录下 在PyCharm中通过命令行执行pip命令安装工具包,包的下载位置取决于多种因素 虚拟环境 如果项目使用了虚拟环境(通常是推荐的做法): Windows:虚拟环境通常位于项目目录下的.venv文件夹(默认情况)或你指定…...

JeeWMS graphReportController.do SQL注入漏洞复现(CVE-2025-0392)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...

部署Joplin私有云服务器postgres版-docker compose

我曾经使用过一段时间 Joplin&#xff0c;官方版本是收费的&#xff0c;而我更倾向于将数据掌握在自己手中。因此&#xff0c;在多次权衡后&#xff0c;我决定自己搭建 Joplin 服务器并进行尝试。 个人搭建的版本与数据库直连&#xff0c;下面是使用 Docker Compose 配置数据库…...

高频 SQL 50 题(基础版)_550. 游戏玩法分析 IV

高频 SQL 50 题&#xff08;基础版&#xff09;_550. 游戏玩法分析 IV select IFNULL(round(count(distinct(restult.player_id))/count(distinct(Activity.player_id)),2),0) as fraction from(select Activity.player_id,Activity.event_datefrom Activity join(select play…...

Redis Redis介绍、安装 - Redis客户端

目录 redis是什么&#xff0c;他的应用场景是什么&#xff1f; Redis的一些主要特点和应用场景&#xff1a; redis的官方网站&#xff1a;Redis redis是键值型数据库&#xff1a;&#xff08;也就是key-value模式&#xff09;&#xff08;跟python的字典很像&#xff09; …...

计算机毕业设计SpringBoot+Vue.js智能无人仓库管理系统(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

课程《MIT Introduction to Deep Learning》

在Youtubu上&#xff0c;MIT Introduction to Deep Learning (2024) | 6.S191 共8节课&#xff1a; (1) MIT Introduction to Deep Learning (2024) | 6.S191 (2) MIT 6.S191: Recurrent Neural Networks, Transformers, and Attention (3) MIT 6.S191: Convolutional Neural N…...

Linux ls 命令

Linux ls&#xff08;英文全拼&#xff1a; list directory contents&#xff09;命令用于显示指定工作目录下之内容&#xff08;列出目前工作目录所含的文件及子目录)。 语法 ls [-alrtAFR] [name...] 参数 : -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)-d 只列出目…...

苹果廉价机型 iPhone 16e 影像系统深度解析

【人像拍摄差异】 尽管iPhone 16e支持后期焦点调整功能&#xff0c;但用户无法像iPhone 16系列那样通过点击屏幕实时切换拍摄主体。前置摄像头同样缺失人像深度控制功能&#xff0c;不过TrueTone原彩闪光灯系统在前后摄均有保留。 很多人都高估了 iPhone 的安全性&#xff0c;查…...

SpringBoot项目中读取resource目录下的文件(六种方法)

文章目录 一、先获取绝对路径再读取文件(jar包里会获取不到) 方法一&#xff1a;类加载器的getResource().getPath()获取目录路径方法二&#xff1a;类加载器的getResource().getPath()获取文件路径 二、直接获取文件流&#xff08;jar包可用&#xff09; 方法三&#xff1a;Cl…...

人工智能之数学基础:矩阵的范数

本文重点 在前面课程中,我们学习了向量的范数,在矩阵中也有范数,本文来学习一下。矩阵的范数对于分析线性映射函数的特性有重要的作用。 矩阵范数的本质 矩阵范数是一种映射,它将一个矩阵映射到一个非负实数。 矩阵的范数 前面我们学习了向量的范数,只有当满足几个条…...

Vscode通过Roo Cline接入Deepseek

文章目录 背景第一步、安装插件第二步、申请API key第三步、Vscode中配置第四步、Deepseek对话 背景 如何在vscode编译器中使用deepseek&#xff0c;记录下来&#xff0c;方便备查。 第一步、安装插件 在vscode中安装Roo Cline&#xff08;prev.Roo Client&#xff09;插件&…...

一周一个Unity小游戏2D反弹球游戏 - 球反弹的方向

前言 本文将实现当球在球板上反弹时,会根据球板移动的方向来给球施加反弹的力,例如当球板往左移动时反弹球,则球应向左上方反弹,若球板往右移动时反弹球,则球应向右上方反弹。 实现球板的反弹方向逻辑 首先给SpringBoard游戏物体添加上2D的刚体,并设置好对应的参数, 锁定…...

大数据学习(52)-MySQL数据库基本操作

&&大数据学习&& &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 承认自己的无知&#xff0c;乃是开启智慧的大门 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一下博主哦&#x1f91…...

Pico 4 Enterprise(企业版)与Unity的交互-有线串流调试篇

入手了Pico 4 E做VR开发&#xff0c;谁知入了天坑...根据官方文档&#xff0c;尝试了串流助手、企业串流、PICO Developer Center&#xff0c;陷入了各种版本问题、环境问题的陷阱。而且Pico4E的OS自24年12开始就不再更新&#xff0c;头盔中预装的企业串流版本也较低&#xff0…...

40岁开始学Java:Java中单例模式(Singleton Pattern),适用场景有哪些?

在Java中&#xff0c;单例模式&#xff08;Singleton Pattern&#xff09;用于确保一个类只有一个实例&#xff0c;并提供全局访问点。以下是详细的实现方式、适用场景及注意事项&#xff1a; 一、单例模式的实现方式 1. 饿汉式&#xff08;Eager Initialization&#xff09; …...

【基于Raft的KV共识算法】-序:Raft概述

本文目录 1.为什么会有Raft&#xff1f;CAP理论 2.Raft基本原理流程为什么要以日志作为中间载体&#xff1f; 3.实现思路任期领导选举日志同步 1.为什么会有Raft&#xff1f; 简单来说就是数据会随着业务和时间的增长&#xff0c;单机不能存的下&#xff0c;这个时候需要以某种…...

windows下玩转vllm:在wsl下安装vllm后续,设置modelscope作为下载源

文章目录 前言所涉及的之前的关键步骤解决模型权重下载网络不通畅的问题vllm和modelscope整合后的bug附录 ImportError: cannot import name _try_login from modelscope.utils.hf_util 全部报错信息前言 之前,咱们说了,由于windows不支持直接部署vllm,所以要么采用wsl,要…...

redis --- 相关基础知识整理

目录 一、基本1、数据结构2、有序集合的编码1. 压缩列表&#xff08;Ziplist&#xff09;2. 跳跃列表&#xff08;SkipList&#xff09;3. 动态转换机制 二、应用场景三、持久化1、 RDB 持久化2、 AOF 持久化3、 混合持久化&#xff08;RDB AOF&#xff09;4、 RDB和AOF的对比…...

基于Rook的Ceph云原生存储部署与实践指南(下)

#作者&#xff1a;任少近 文章目录 6Ceph资源对像管理6.1查看services6.2查看Jobs6.3 查看deployments.apps6.4查看daemonsets.apps6.5查看configmaps6.6查看clusterroles.rbac.authorization.k8s.io6.7查看clusterrolebindings.rbac.authorization.k8s.io6.8通过cephclusters…...

计算机网络---TCP三握四挥

文章目录 TCPTCP 的核心特点TCP 与 UDP 特性对比TCP 标志位 TCP 的三次握手&#xff08;建立连接&#xff09;TCP 三次握手概述图解 TCP 三次握手为什么需要三次握手&#xff0c;而不是两次为什么要三次握手&#xff0c;而不是四次三次握手连接阶段&#xff0c;最后一次 ACK 包…...

linux基础知识

Linux版本 内核版和开发版 奇数为开发板 偶数为稳定版 Debian 属于自由开源稳定的linux发行版本&#xff0c;可以由用户进行维护&#xff0c;目前被教育机构、商业公司、非盈利组织和政府机构使用 Red Hat Enterprise Linux(RHEL) 由red hat公司开发的开源linux版本 RHEL服…...

快检查达梦库怎么了

扁鹊的弟弟来了 要求5分钟定位达梦数据库问题 #!/bin/bash## content 实例个数 告警日志 实例状态 用户连接 活动会话 锁 集群状态 服务状态 磁盘空间 cpu mem 侦听及日志 ## scope 单机、DW、DSC Linux 多实例 ## example 将脚本保存为d.sh&#xff0c;用root用执行&#…...

Python可视化大框架的研究与应用

## 摘要 随着数据科学和人工智能的快速发展&#xff0c;数据可视化成为了数据分析中不可或缺的一部分。Python作为一种功能强大且易于学习的编程语言&#xff0c;提供了多种可视化工具和库。本文旨在探讨Python可视化的主要框架&#xff0c;分析其特点、应用场景以及未来发展趋…...

【智能音频新风尚】智能音频眼镜+FPC,打造极致听觉享受!【新立电子】

智能音频眼镜&#xff0c;作为一款将时尚元素与前沿科技精妙融合的智能设备&#xff0c;这种将音频技术与眼镜形态完美结合的可穿戴设备&#xff0c;不仅解放了用户的双手&#xff0c;更为人们提供了一种全新的音频交互体验。新立电子FPC在智能音频眼镜中的应用&#xff0c;为音…...

jeecgboot项目idea启动项目(二)

文章目录 一、IntelliJ IDEA1.安装2.配置maven3.配置jdk 二、IDEA启动项目三、IDEA2024.1.4破解 一、IntelliJ IDEA ‌IntelliJ IDEA是一款由JetBrains开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要用于Java和Kotlin编程&#xff0c;但也支持多种其他编程语…...

【计算机网络基础】-------计算机网络概念

1.什么是计算机网络 定义&#xff1a; 图解&#xff1a; 2.最简单的计算机网络 其中&#xff1a; 结点可以是计算机、集线器、交换机、路由器等链路可以是有线链路、无线链路 2.1集线器 2.2交换机 3.互连网&#xff08;internet&#xff09;与 路由器 路由器 与 家用路由…...