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

Java开发实战:使用IntelliJ IDEA 开发Spring Boot + MyBatis + MySQL的详细实现步骤

使用IntelliJ IDEA 开发Spring Boot + MyBatis + MySQL的详细实现步骤

在本文中,我们将一步步讲解如何在IntelliJ IDEA 2024.2.3中使用Spring Boot、MyBatis和MySQL来开发一个简单的Web应用。通过本文,你将学会如何设置项目、配置数据库、创建实体类、编写Mapper接口、实现服务逻辑,以及如何测试你的API。让我们开始吧!


1. 安装IntelliJ IDEA

首先,确保你安装了IntelliJ IDEA 。根据实际选择IntelliJ IDEA 版本,我安装的是IntelliJ IDEA2024.2.3,如果尚未安装,可以从官方网站下载并安装:

  • IntelliJ IDEA 官方下载地址

2. 创建一个新的Spring Boot项目

  1. 打开IntelliJ IDEA,选择“Create New Project”。
  2. 在左侧选择“Spring”选项。
  3. 选择适合的Spring Boot版本(推荐使用最新稳定版本)。
  4. 配置项目 metadata,例如:
    • Project name: 输入你的项目名称,例如 spring_boot_demo

    • Project location: 选择一个存储路径。

    • Java SDK: 确保选择了JDK 17或更高版本。注意勾选如下红色标识框所示选项:

    • 在这里插入图片描述

    • Spring Boot: 选择一个适合的版本,例如 3.4.2

    • Template: 选择 “Web” 和 “MyBatis Spring Boot Starter”。勾选如下3个依赖项:

    • 在这里插入图片描述

在这里插入图片描述

  • Project metadata: 配置 GroupArtifact,例如:
    • Group: com.example
    • Artifact: spring_boot_demo
  1. 点击“Finish”创建项目。

3. 配置MySQL数据库

3.1 安装MySQL

  1. 下载并安装MySQL Community Server:
    • MySQL 官方下载地址
  2. 安装完成后,启动MySQL服务。

3.2 创建数据库和表

打开MySQL命令行工具(或使用heidisql、TablePlus等可视化工具)并执行以下SQL语句:

-- 创建数据库
CREATE DATABASE demo_db;-- 切换到数据库
USE demo_db;-- 创建表
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,email VARCHAR(255) UNIQUE NOT NULL,age INT
);

3.3 插入测试数据

-- 插入测试数据
INSERT INTO users (name, email, age) 
VALUES 
('张三', 'zhangsan@example.com', 25),
('李四', 'lisi@example.com', 30),
('王五', 'wangwu@example.com', 28);

4. 配置MySQL连接

在项目的 application.properties 文件中,添加以下配置:

# 数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/demo_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=your_password  # 输入你的MySQL密码
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# MyBatis 配置
mybatis.type-aliases-package=com.example.spring_boot_demo.entity
mybatis.mapper-locations=classpath:mapper/*.xml

5. 创建实体类

创建一个 User 实体类,位于 src/main/java/com/example/spring_boot_demo/entity 目录:

package com.example.spring_boot_demo.entity;public class User {private Integer id;private String name;private String email;private Integer age;// 无参构造方法(必须)public User() {}// Getter 和 Setter 方法(必须)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 getEmail() { return email; }public void setEmail(String email) { this.email = email; }public Integer getAge() { return age; }public void setAge(Integer age) { this.age = age; }
}

6. 创建Mapper接口

src/main/java/com/example/spring_boot_demo/mapper 目录下,创建一个 UserMapper 接口:

package com.example.spring_boot_demo.mapper;import com.example.spring_boot_demo.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;import java.util.List;@Mapper
public interface UserMapper {@Select("SELECT * FROM users")List<User> findAll();
}

7. 实现服务层

src/main/java/com/example/spring_boot_demo/service 目录下,创建一个 UserService 类:

package com.example.spring_boot_demo.service;import com.example.spring_boot_demo.entity.User;
import com.example.spring_boot_demo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;import java.util.List;@Service
public class UserService {private final UserMapper userMapper;@Autowiredpublic UserService(UserMapper userMapper) {this.userMapper = userMapper;}public List<User> getAllUsers() {return userMapper.findAll();}
}

8. 创建控制层

src/main/java/com/example/spring_boot_demo/controller 目录下,创建一个 UserController 类:

package com.example.spring_boot_demo.controller;import com.example.spring_boot_demo.entity.User;
import com.example.spring_boot_demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestController
@RequestMapping("/api/users")
public class UserController {private final UserService userService;@Autowiredpublic UserController(UserService userService) {this.userService = userService;}@GetMappingpublic List<User> getAllUsers() {return userService.getAllUsers();}
}

代码解释
这个代码片段是一个基于Spring Boot的RESTful API控制器,用于处理与用户相关的HTTP请求。下面是对代码的详细解释:

1)包声明

package com.example.spring_boot_demo.controller;
  • 这行代码声明了当前类所在的包路径。包路径通常用于组织和管理代码,确保类名的唯一性。

2) 导入依赖

import com.example.spring_boot_demo.entity.User;
import com.example.spring_boot_demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
  • 这些import语句导入了代码中所需的类。包括:
    • User:用户实体类,通常用于表示数据库中的用户表。
    • UserService:服务层接口或类,用于处理业务逻辑。
    • Spring框架的注解:如@Autowired@GetMapping@RequestMapping@RestController等。
    • List:Java集合框架中的接口,用于存储一组对象。

3)控制器类

@RestController
@RequestMapping("/users")
public class UserController {private final UserService userService;@Autowiredpublic UserController(UserService userService) {this.userService = userService;}@GetMappingpublic List<User> getAllUsers() {return userService.getAllUsers();}
}
  • @RestController:这个注解表示该类是一个RESTful风格的控制器。它结合了@Controller@ResponseBody注解,意味着该类中的方法返回的数据将直接作为HTTP响应体返回,而不是视图名称。

  • @RequestMapping("/users"):这个注解用于映射HTTP请求到控制器的处理方法。在这里,所有以/users开头的请求都会由UserController处理。

  • private final UserService userService;:这是一个私有的、不可变的UserService类型的成员变量。final关键字表示这个变量一旦被初始化后就不能再被修改。

  • @Autowired:这个注解用于自动注入依赖。Spring框架会自动查找合适的UserService实现类,并将其注入到UserController中。这里使用了构造函数注入的方式。

  • public UserController(UserService userService):这是控制器的构造函数,用于初始化userService。由于使用了@Autowired注解,Spring会自动将UserService的实例传递给这个构造函数。

  • @GetMapping:这个注解用于映射HTTP GET请求到getAllUsers方法。当客户端发送一个GET请求到/users时,这个方法会被调用。

  • public List<User> getAllUsers():这是控制器中的一个方法,用于处理GET请求。它调用userService.getAllUsers()方法来获取所有用户的数据,并返回一个List<User>对象。这个列表会被自动转换为JSON格式并作为HTTP响应体返回给客户端。

4) 总结

  • 这个UserController类是一个典型的Spring Boot RESTful控制器,它通过UserService来处理与用户相关的业务逻辑,并通过HTTP接口暴露这些功能。
  • 当客户端发送一个GET请求到/users时,控制器会调用userService.getAllUsers()方法,获取所有用户的数据,并将其以JSON格式返回给客户端。
  • 这种设计遵循了MVC(Model-View-Controller)模式,控制器负责处理请求和响应,服务层负责业务逻辑,实体类负责数据模型。

9. 启动Spring Boot应用

  1. 打开项目的主类 SpringBootDemoApplication.java 并运行:
package com.example.spring_boot_demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringBootDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringBootDemoApplication.class, args);}}
  1. 应用启动后,控制台会显示:

在这里插入图片描述

浏览器输入:http://localhost:8080/users获取如下
在这里插入图片描述

10. 使用Postman测试API

  1. 打开Postman,发送一个 GET 请求到以下地址:
    http://localhost:8080/users
    
  2. 如果配置无误,你将收到如下JSON响应:
    [{"id": 1,"name": "张三","email": "zhangsan@example.com","age": 25},{"id": 2,"name": "李四","email": "lisi@example.com","age": 30},{"id": 3,"name": "王五","email": "wangwu@example.com","age": 28}
    ]
    

11. 在IntelliJ IDEA中使用数据库工具

IntelliJ IDEA 提供了强大的数据库工具,能帮助你直接在IDE中管理数据库。

  1. 打开数据库工具:
    • 点击菜单栏的 “View > Tool Windows > Database”
  2. 配置数据源:
    • 点击 “+” 按钮并选择 “MySQL”
    • 输入主机、端口、数据库名、用户名和密码
  3. 操作数据库:
    • 你可以直接在IDE中执行SQL语句、查看表结构等。

注意事项

  1. 数据库密码
    • 确保 application.properties 中的数据库密码与MySQL安装时设置的密码一致。
  2. 端口占用
    • 如果提示 “Port 8080 is already in use”,检查是否有其他应用占用了该端口。
  3. 字段匹配
    • 确保数据库表字段与 User 类中的字段保持一致。
  4. MyBatis日志
    • 如果需要调试MyBatis SQL,可以启用日志:
      logging.level.com.example.spring_boot_demo.mapper=DEBUG
      

总结

通过以上步骤,你已经成功使用IntelliJ IDEA 2024.2.3开发了一个基于Spring Boot、MyBatis和MySQL的Web应用。你可以通过扩展控制器和Mapper接口,添加更多功能,如添加、修改和删除用户数据。希望本文能帮助你快速上手这些技术栈的开发!

相关文章:

Java开发实战:使用IntelliJ IDEA 开发Spring Boot + MyBatis + MySQL的详细实现步骤

使用IntelliJ IDEA 开发Spring Boot MyBatis MySQL的详细实现步骤 在本文中&#xff0c;我们将一步步讲解如何在IntelliJ IDEA 2024.2.3中使用Spring Boot、MyBatis和MySQL来开发一个简单的Web应用。通过本文&#xff0c;你将学会如何设置项目、配置数据库、创建实体类、编写…...

python-leetcode-在排序数组中查找元素的第一个和最后一个位置

34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣&#xff08;LeetCode&#xff09; class Solution:def searchRange(self, nums: List[int], target: int) -> List[int]:def find_first(nums, target):left, right 0, len(nums) - 1result -1while left < rig…...

Oracle RHEL 7.8 安装

前言 Red Hat Enterprise Linux Server release 7.8 为企业级 SO 镜像。绝大部分企业如果使用Oracle数据库均会使用其企业版 OS &#xff0c;能够很好的支持数据库的运行 文档目的 当前文档仅针对 VMware Workstation Pro 进行 OS 介质安装。 镜像下载地址 注意&#xff1…...

Java多线程交替打印

1. 双线程交替打印奇偶数 class Printer{private int num1; //要打印的数字private Object myLock new Object();public static void main(String[] args){Printer pnew Printer();Thread t1new Thread( ()->p.printNum(true), "threadA");t1.start();Thread t…...

华为2288H V5服务器无法启动问题处理

问题&#xff1a;通电后服务器前面显示888&#xff0c;点击电源键没有反应 一.通过管理口管理服务器硬件设备 华为2288H V5它默认的IP是192.168.2.100 网关是255.255.255.0 2.将网线一头连接服务器的Mgmt口&#xff0c;另一头来连接笔记本的网口&#xff0c;将笔记本的的本地…...

阿里巴巴对deepseek回应

行业背景与发布契机 当杭州的DeepSeek在相关领域展现实力时&#xff0c;阿里巴巴为了在技术竞争中占据一席之地&#xff0c;推出新的视觉 - 语言模型&#xff0c;试图吸引行业关注。 Qwen2.5 - VL系列模型发布详情 模型介绍&#xff1a;阿里巴巴发布Qwen2.5 - VL系列视觉 - 语…...

如何使用UniApp实现页面跳转和数据传递?

在 UniApp 中&#xff0c;页面跳转和数据传递是基本的功能&#xff0c;允许用户在应用中浏览不同的页面并传递必要的信息。以下是如何实现页面跳转和数据传递的详细步骤和示例。 一、页面跳转 UniApp 提供了几种方式来进行页面跳转&#xff0c;主要包括&#xff1a; uni.nav…...

STM32:迎接汽车与AI时代MCU新挑战

作为通用32位MCU市场最受关注的产品系列&#xff0c;意法半导体&#xff08;ST&#xff09;的STM32 MCU从2007年问世之后就迎来爆发式增长&#xff0c;成功占据通用32位MCU市占率领头羊的位置&#xff0c;并且不断引领着通用MCU技术与应用的新思维开拓。 本文引用地址&#xf…...

【操作系统】深入理解Linux物理内存

物理内存的组织结构 我们平时所称的内存也叫随机访问存储器也叫 RAM 。RAM 分为两类&#xff1a; 一类是静态 RAM&#xff08; SRAM &#xff09;&#xff0c;这类 SRAM 用于 CPU 高速缓存 L1Cache&#xff0c;L2Cache&#xff0c;L3Cache。其特点是访问速度快&#xff0c;访…...

K8s组件

一、Kubernetes 集群架构组件 K8S 是属于主从设备模型&#xff08;Master-Slave 架构&#xff09;&#xff0c;即有 Master 节点负责集群的调度、管理和运维&#xff0c;Slave 节点是集群中的运算工作负载节点。 主节点一般被称为 Master 节点&#xff0c;master节点上有 apis…...

【ESP32接入国产大模型之Deepseek】

【ESP32接入国产大模型之Deepseek】 1. Deepseek大模型1.1 了解Deepseek api1.2 Http接口鉴权1.3. 接口参数说明1.3.1 请求体(request)参数1.3.2 模型推理 2. 先决条件2.1 环境配置2.2 所需零件 3. 核心代码3.1 源码分享3.2 源码解析3.3 连续对话修改后的代码代码说明示例输出注…...

Vue 2 路由指南:从基础到高级

注意&#xff1a;对于代码看不清的部分&#xff0c;用鼠标选中就能看到了&#xff0c;背景颜色和字体颜色过于接近&#xff0c;我也不知道怎么调&#xff0c;只能这样子先看着了 一、Vue Router 是什么&#xff1f; Vue Router 是 Vue.js 官方的路由管理器&#xff0c;它允许…...

2025最新深度学习pytorch完整配置:conda/jupyter/vscode

从今天开始&#xff0c;开始一个新的专栏&#xff0c;更新深度学习相关的内容&#xff0c;从入门到精通&#xff0c;首先的首先是关于环境的配置指南&#xff1a;工欲善其事必先利其器&#xff01; PyTorch 是由 Facebook&#xff08;现 Meta&#xff09;开发的 开源深度学习框…...

Python教学-最常用的标准库之一——OS库

os 库是 Python 标准库中的一个模块&#xff0c;它提供了一种方便的方式来使用操作系统相关的功能。os 模块提供了很多函数&#xff0c;可以用来处理文件和目录、访问环境变量、执行系统命令等。以下是一些常用的 os 模块的功能和示例&#xff1a; 1. 文件和目录操作 1.1 当前…...

尚硅谷爬虫note006

一、ajax的get请求 1. ajax的get请求—豆瓣电影第一页 # _*_ coding : utf-8 _*_ # Time : 2025/2/13 15:14 # Author : 20250206-里奥 # File : demo23_ajax的get请求 # Project : PythonProject10-14import urllib.requestfrom demo17_qingqiuduixaingdedingzhi import hea…...

LeetCode刷题---字符串---859

亲密字符串 859. 亲密字符串 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 给你两个字符串 s 和 goal &#xff0c;只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果&#xff0c;就返回 true &#xff1b;否则返回 false 。 交换字母的定义是&…...

探索大数据处理:利用 Apache Spark 解锁数据价值

探索大数据处理&#xff1a;利用 Apache Spark 解锁数据价值 大家好&#xff0c;我是你们熟悉的大数据领域自媒体创作者Echo_Wish。今天&#xff0c;我们来聊聊如何利用Apache Spark进行大规模数据处理。Apache Spark作为一个快速、通用的集群计算框架&#xff0c;以其出色的性…...

伯克利 CS61A 课堂笔记 08 —— Strings and Dictionaries

本系列为加州伯克利大学著名 Python 基础课程 CS61A 的课堂笔记整理&#xff0c;全英文内容&#xff0c;文末附词汇解释。 目录 01 Strings 字符串 Ⅰ Strings are An Abstraction. Ⅱ Strings Literals have Three Forms Ⅲ String are Sequences 02 Dictionaries 字典 …...

V93K测试机

爱德万V9300&#xff08;又称V93K&#xff09;是Advantest公司推出的高端可扩展SoC测试平台&#xff0c;在半导体测试领域具有标杆地位。以下为该设备的详细介绍&#xff1a; ### 一、核心性能与技术优势 1. **高速高精度测试能力** V9300支持高达112 Gbps PAM4信号&…...

在 CentOS 上更改 SSH 默认端口以提升服务器安全性

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall ︱vue3-element-admin︱youlai-boot︱vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; GitCode︱ Gitee ︱ Github &#x1f496; 欢迎点赞 &#x1f44d; 收藏 ⭐评论 …...

基于逻辑概率的语义信道容量(Semantic Channel Capacity)和语义压缩理论(Semantic Compression Theory)

基于逻辑概率的语义信道容量&#xff08;Semantic Channel Capacity&#xff09;和语义压缩理论&#xff08;Semantic Compression Theory&#xff09;是语义通信&#xff08;Semantic Communication, SemCom&#xff09;的核心研究方向&#xff0c;它们旨在优化通信效率&#…...

Golang GORM系列:GORM事务及错误处理

在数据库管理领域&#xff0c;确保数据完整性至关重要。GORM是健壮的Go对象关系映射库&#xff0c;它为开发人员提供了维护数据一致性和优雅地处理错误的基本工具。本文是掌握GORM事务和错误处理的全面指南。我们将深入研究如何使用事务来保证原子性&#xff0c;并探索有效处理…...

51单片机-C语言扩展及最小系统

1、C-51的数据类型扩充定义 sfr&#xff1a;特殊功能寄存器声明 sfr&#xff1a;变量名地址值&#xff1b; 特殊功能寄存器在reg51.H这个头文件里面都帮我们定义好了&#xff0c;所以平时我们就不要自己去定义寄存器的名字。 sbit&#xff1a;特殊功能位声明sbit 变量名地址…...

日常问题-pnpm install执行没有node_modules生成

日常问题-pnpm install执行没有node_modules生成 1.问题2.解决方法 1.问题 执行pnpm i后&#xff0c;提示Scope: all 3 workspace projects Done in 503ms&#xff0c;而且没有node_modules生成。很奇怪 2.解决方法 确保根目录有 pnpm-workspace.yaml 文件&#xff1a; 把这…...

FreeRTOS低功耗总结

前言 Cortex-M核的MCU一般支持以下三种低功耗方式&#xff1a; ● 睡眠(Sleep)模式 ● 停止(Stop)模式 ● 待机(Standby)模式 睡眠模式 进入睡眠模式有两种指令&#xff1a;WFI(等待中断)和WFE(等待事件)&#xff0c; WFI进入睡眠模式后&#xff0c;任意中断都可唤醒。 WFE进…...

UniApp 实现炫酷导航栏:选中图标上移并隐藏文字

在移动应用开发中&#xff0c;导航栏是用户与应用交互的重要组成部分&#xff0c;一个美观且交互性强的导航栏能大大提升用户体验。本文将详细介绍如何使用 UniApp 实现一个独特的导航栏&#xff0c;当用户选中某个导航项时&#xff0c;对应的图标会上移并隐藏文字&#xff0c;…...

Django 操作表中的数据(增删改查)

1.新建数据 我之前已经在数据库中创建了两张表&#xff0c;如下 在urls.py文件中添加一行代码&#xff0c;然后再在views.py文件中编写函数 &#xff08;将 URL 路径 orm/ 映射到 Django 视图函数 views.orm&#xff0c;当用户访问 orm/ 时&#xff0c;Django 会调用 orm 视图…...

优选驾考小程序

第2章 系统分析 2.1系统使用相关技术分析 2.1.1Java语言介绍 Java语言是一种分布式的简单的 开发语言&#xff0c;有很好的特征&#xff0c;在安全方面、性能方面等。非常适合在Internet环境中使用&#xff0c;也是目前企业级运用中最常用的一个编程语言&#xff0c;具有很大…...

vue开发06:前端通过webpack配置代理处理跨域问题

1.定义 在浏览器尝试请求不同源&#xff08;域名、协议、端口号不同&#xff09;的资源时&#xff0c;浏览器的同源策略会阻止这种跨域请求。&#xff08;比如前端端口15500&#xff0c;后端端口5050&#xff0c;前端界面不可以直接调用5050端口&#xff09; 2.解决方案 使用前…...

C++基础 | 线程`std::thread`

什么是std::thread&#xff1f; std::thread是C11中引入的一个类&#xff0c;用于表示和管理线程。通过std::thread&#xff0c;我们可以创建一个新的线程来执行指定的任务。线程是操作系统调度的基本单位&#xff0c;多个线程可以并发执行&#xff0c;从而提高程序的效率。 创…...

体验 DeepSeek-R1:解密 1.5B、7B、8B 版本的强大性能与应用

文章目录 &#x1f34b;引言&#x1f34b;DeepSeek 模型简介&#x1f34b;版本更新&#xff1a;1.5B、7B、8B 的区别与特点&#x1f34b;模型评估&#x1f34b;体验 DeepSeek 的过程&#x1f34b;总结 &#x1f34b;引言 随着大规模语言模型的持续发展&#xff0c;许多模型在性…...

2024年认证杯SPSSPRO杯数学建模A题(第二阶段)保暖纤维的保暖能力全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 A题 保暖纤维的保暖能力 原题再现&#xff1a; 冬装最重要的作用是保暖&#xff0c;也就是阻挡温暖的人体与寒冷环境之间的热量传递。人们在不同款式的棉衣中会填充保暖材料&#xff0c;从古已有之的棉花、羽绒到近年来各种各样的人造纤维。不…...

P1878 舞蹈课(详解)c++

题目链接&#xff1a;P1878 舞蹈课 - 洛谷 | 计算机科学教育新生态 1.题目解析 1&#xff1a;我们可以发现任意两个相邻的都是异性&#xff0c;所以他们的舞蹈技术差值我们都要考虑&#xff0c;4和2的差值是2&#xff0c;2和4的差值是2&#xff0c;4和3的差值是1&#xff0c;根…...

或非门组成的SR锁存器真值表相关问题

PS&#xff1a;主要是给大家抛砖引玉&#xff0c;不喜勿喷。 问题描述&#xff1a;或非门组成的SR锁存器&#xff0c;为什么当SD和RD等于0时候的真值表一个是Q0&#xff0c;Q0.一个结果是Q1&#xff0c;Q1&#xff1f;...

机器学习算法 - 随机森林之决策树初探(1)

随机森林是基于集体智慧的一个机器学习算法&#xff0c;也是目前最好的机器学习算法之一。 随机森林实际是一堆决策树的组合&#xff08;正如其名&#xff0c;树多了就是森林了&#xff09;。在用于分类一个新变量时&#xff0c;相关的检测数据提交给构建好的每个分类树。每个…...

webpack构建流程

文章目录 [TOC](文章目录) 运行流程初始化流程编译构建流程compile编译make 编译模块build module 完成模块编译 输出流程seal输出资源emit输出完成 小结 运行流程 是一个串行的过程&#xff0c;它的工作流程就是将各个插件串联起来 在运行过程中会广播事件&#xff0c;插件只…...

服务器之连接简介(Detailed Explanation of Server Connection)

一台服务器最大能支持多少连接&#xff1f;一台客户端机器最多能发起多少条连接&#xff1f;&#xff1f; 我们知道TCP连接&#xff0c;从根本上看其实就是client和server端在内存中维护的一组【socket内核对象】&#xff08;这里也对应着TCP四元组&#xff1a;源IP、源端口、…...

第1章大型互联网公司的基础架构——1.5 服务发现

讲到这里&#xff0c;我们已经对一个客户端请求进入业务HTTP服务的过程有了较为详细的了解。业务HTTP服务在处理请求的过程中免不了与其他下游服务通信——可能会调用其他业务服务&#xff0c;可能需要访问数据库&#xff0c;可能会向消息中间件投递消息等&#xff0c;所以业务…...

uniapp PDF 预览和下载

创建 index.vue <template><view><view class"box"><view class"item" ><view class"title"><span></span><text>文件</text></view><view class"list" v-for"(…...

ubuntu服务器部署

关闭欢迎消息 服务器安装好 ubuntu 系统后&#xff0c;进行终端登录&#xff0c;会显示出很多的欢迎消息 通过在用户的根目录下执行 touch .hushlogin 命令&#xff0c;再次登录终端就不会出现欢迎消息 修改hostname显示 修改 /etc/hostname 文件内容为主机名&#xff0c;保…...

Deepseek 本地部署

准备环境 设备&#xff1a;家用笔记本电脑&#xff0c;8核/16G/1Tb SSD/无独显 系统&#xff1a;windows10 软件环境&#xff08;非源码部署不需要&#xff09;&#xff1a;conda 4.8.5、python3.7、git2.13 步骤 下载安装Ollama 下载地址&#xff1a;OllamaGet up and r…...

[Linux][问题处理]修改密码报You must wait longer to change your password

一、问题描述 在Linux控制台中修改密码&#xff0c;键入旧密码&#xff0c;设置并确认新密码后&#xff0c;却提示You must wait longer to change your password&#xff08;您必须等待更长时间才能更改密码&#xff09; 二、原因 当前修改时间 < Minimum number of da…...

《刚刚问世》系列初窥篇-Java+Playwright自动化测试-22- 操作鼠标拖拽 - 下篇(详细教程)

1.简介 上一篇中&#xff0c;宏哥说的宏哥在最后提到网站的反爬虫机制&#xff0c;那么宏哥在自己本地做一个网页&#xff0c;没有那个反爬虫的机制&#xff0c;谷歌浏览器是不是就可以验证成功了&#xff0c;宏哥就想验证一下自己想法&#xff0c;其次有人私信宏哥说是有那种…...

SpringBoot3使用Swagger3

版本 springboot3.4.2 JAVA 17 一、引入Swagger3依赖 <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId><version>2.0.4</version> </dependency> 二、快速启…...

HCIA综合项目之多技术的综合应用实验

十五 HCIA综合实验 15.1 IP规划 #内网分配网段192.168.1.0 24#内网包括骨干链路和两个用户网段&#xff0c;素以需要划分三个&#xff0c;借两位就够用了192.168.1.0 26--骨干192.168.1.64 26---R1下网络192.168.1.128 26---R2下网络192.168.1.192 26--备用​192.168.1.64 26--…...

燕千云ITSM已支持DeepSeek对接!AI能力持续升级

春节期间&#xff0c;DeepSeek火爆全网&#xff0c;引发热议&#xff0c;作为国产AI大模型的黑马&#xff0c;DeepSeek凭借独特的训练方法、先进的模型架构和强大的联网推理能力&#xff0c;正不断拓展AI技术的应用边界。其“快思考”能力&#xff0c;可在极短时间内完成复杂决…...

Windows 自动主题:Windows AutoTheme

Windows 自动主题&#xff1a;Windows AutoTheme 链接&#xff1a;https://pan.xunlei.com/s/VOJ2ZG5t8QjL7_fGVIBgyxJQA1?pwdgbie# 自动切换&#xff1a;根据日出、日落时间自动切换 Windows 主题模式。高效轻量&#xff1a;使用 Rust 提供高效的系统调用&#xff0c;保证运…...

自定义Spring Cloud Gateway过滤器:记录慢请求

在构建微服务架构时&#xff0c;API网关是一个关键组件&#xff0c;它负责路由、负载均衡、安全验证等多种功能。Spring Cloud Gateway提供了强大的扩展能力&#xff0c;允许开发者通过自定义过滤器来增强其功能。本文将详细介绍如何实现一个自定义过滤器&#xff0c;用于记录响…...

python 浅拷贝和深拷贝

浅拷贝&#xff08;Shallow Copy&#xff09;语法示例代码 1示例代码 2 深拷贝&#xff08;Deep Copy&#xff09;语法示例代码 浅拷贝与深拷贝的区别示例&#xff1a;浅拷贝与深拷贝的对比 浅拷贝&#xff1a;只复制外层容器&#xff0c;内层嵌套对象仍然是共享的&#xff0c;…...

uni-app 学习(一)

一、环境搭建和运行 &#xff08;一&#xff09;创建项目 直接进行创建 &#xff08;二&#xff09;项目结构理解 pages 是页面 静态资源 打包文件&#xff0c;看我们想输出成什么格式 app.vue 页面的入口文件 main.js 是项目的入口文件 存放对打包文件的配置 pages 存放整…...