spring boot应用部署IIS
Windows IIS 部署 Spring Boot 应用详细指南
本文档提供了在 Windows Server 上使用 IIS 部署 Spring Boot 应用的完整步骤和最佳实践。
目录
- 概述
- 前期准备
- Spring Boot 应用准备
- 安装配置必要组件
- 配置 IIS 站点
- 配置反向代理
- 配置 Windows 服务
- 配置应用自启动
- HTTPS 配置
- 日志配置
- 部署多个应用
- 性能优化
- 常见问题排查
- 最佳实践
概述
Spring Boot 应用通常是独立的 Java 应用程序,它们自带嵌入式 Web 服务器(如 Tomcat、Jetty 或 Undertow)。在 Windows 环境中,虽然可以直接运行这些应用,但使用 IIS 作为前端服务器有以下优势:
- 更好的静态资源处理能力
- 提供额外的安全层
- 集成 Windows 认证
- 集中管理多个应用
- 利用 IIS 的高级功能(如缓存、压缩等)
本指南将介绍如何使用 IIS 作为反向代理来部署 Spring Boot 应用。
前期准备
Windows Server 环境准备
-
安装或确认 IIS 已安装:
- 打开服务器管理器 → 添加角色和功能
- 安装 Web 服务器 (IIS) 角色
- 确保以下功能已选中:
- Web 服务器 → 通用 HTTP 功能 → 静态内容
- Web 服务器 → 应用程序开发 → WebSocket 协议
- Web 服务器 → 性能 → 压缩静态内容
- 管理工具 → IIS 管理控制台
-
安装 URL 重写模块:
- 从 Microsoft 官方网站 下载
- 按照安装向导完成安装
-
安装 Application Request Routing (ARR):
- 从 Microsoft 官方网站 下载
- 按照安装向导完成安装
Java 环境准备
-
安装 JDK:
- 下载并安装适合的 JDK 版本(推荐 JDK 11 或更高版本)
- 设置 JAVA_HOME 环境变量
- 添加 Java 到 PATH 环境变量
-
验证 Java 安装:
java -version
Spring Boot 应用准备
应用打包
-
配置应用端口:
在application.properties
或application.yml
中设置端口:server.port=8080
-
构建可执行 JAR 文件:
mvn clean package -DskipTests
或使用 Gradle:
./gradlew bootJar
-
测试应用:
java -jar target/your-application.jar
确保应用可以正常启动并访问。
优化应用配置
-
配置日志输出到文件:
在application.properties
中添加:logging.file.name=logs/application.log logging.file.max-size=10MB logging.file.max-history=10
-
配置健康检查端点:
management.endpoints.web.exposure.include=health,info,metrics management.endpoint.health.show-details=always
-
配置应用上下文路径(可选):
如果需要在子路径下运行应用:server.servlet.context-path=/myapp
安装配置必要组件
设置应用服务器目录
-
创建应用目录:
mkdir C:\SpringBootApps\my-application
-
创建子目录:
mkdir C:\SpringBootApps\my-application\logs mkdir C:\SpringBootApps\my-application\config
-
复制应用文件:
将构建好的 JAR 文件复制到应用目录:copy target\your-application.jar C:\SpringBootApps\my-application\
-
创建应用配置文件(可选):
如果需要覆盖默认配置,创建application.properties
或application.yml
文件:copy src\main\resources\application.properties C:\SpringBootApps\my-application\config\
-
创建启动脚本:
创建start.bat
文件:@echo off set JAVA_HOME=C:\Program Files\Java\jdk-11 set PATH=%JAVA_HOME%\bin;%PATH% cd /d C:\SpringBootApps\my-application java -Xms256m -Xmx512m -jar your-application.jar --spring.config.location=file:./config/
配置 IIS 站点
创建和配置 IIS 网站
-
打开 IIS 管理器:
- 开始菜单 → 管理工具 → Internet Information Services (IIS) 管理器
-
创建应用程序池:
- 右键点击"应用程序池" → “添加应用程序池”
- 名称:
MyApplicationPool
- .NET CLR 版本:
无托管代码
- 托管管道模式:
集成
- 点击确定
-
创建网站:
- 右键点击"网站" → “添加网站”
- 网站名称:
MySpringBootApp
- 物理路径:
C:\inetpub\wwwroot\myapp
(创建一个空目录) - 端口:
80
(或其他可用端口) - 点击确定
-
创建物理目录:
mkdir C:\inetpub\wwwroot\myapp
配置反向代理
配置 ARR 和 URL 重写
-
启用 ARR 代理功能:
- 在 IIS 管理器中选择服务器级别
- 双击"Application Request Routing Cache"
- 点击右侧操作面板中的"服务器代理设置"
- 勾选"启用代理"
- 点击"应用"
-
创建 URL 重写规则:
- 选择您创建的网站
- 双击"URL 重写"
- 在右侧操作面板中点击"添加规则"
- 选择"空白规则"
- 配置如下:
- 名称:
ReverseProxyInbound
- 模式:
(.*)
- 操作类型:
重写
- 重写 URL:
http://localhost:8080/{R:1}
- 点击"应用"
- 名称:
-
添加反向代理配置到 web.config:
在网站的物理路径 (C:\inetpub\wwwroot\myapp
) 创建web.config
文件:<?xml version="1.0" encoding="UTF-8"?> <configuration><system.webServer><rewrite><rules><rule name="ReverseProxyInbound" stopProcessing="true"><match url="(.*)" /><action type="Rewrite" url="http://localhost:8080/{R:1}" /><conditions></conditions></rule></rules><outboundRules><rule name="ReverseProxyOutbound" preCondition="ResponseIsHtml1"><match filterByTags="A, Form, Img" pattern="^http(s)?://localhost:8080/(.*)" /><action type="Rewrite" value="/{R:2}" /></rule><preConditions><preCondition name="ResponseIsHtml1"><add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" /></preCondition></preConditions></outboundRules></rewrite><httpErrors errorMode="Custom"><remove statusCode="404" subStatusCode="-1" /><error statusCode="404" prefixLanguageFilePath="" path="/" responseMode="ExecuteURL" /></httpErrors></system.webServer> </configuration>
-
配置 ARR 绕过本地请求(提高性能):
- 选择服务器级别
- 双击"Application Request Routing Cache"
- 点击"服务器代理设置"
- 取消勾选"在服务器变量或标头中传递请求标头"
- 点击"应用"
配置 Windows 服务
使用 NSSM 创建 Windows 服务
-
下载 NSSM (Non-Sucking Service Manager):
- 从 NSSM 官网 下载
- 解压到合适的位置,例如
C:\Tools\nssm
-
创建服务:
C:\Tools\nssm\win64\nssm.exe install MySpringBootService
-
在弹出的界面中配置服务:
- 路径:
C:\Program Files\Java\jdk-11\bin\java.exe
- 启动目录:
C:\SpringBootApps\my-application
- 参数:
-Xms256m -Xmx512m -jar your-application.jar --spring.config.location=file:./config/
- 路径:
-
配置详细信息:
- 切换到"详细信息"选项卡
- 显示名称:
My Spring Boot Application
- 描述:
Spring Boot application running as a service
- 启动类型:
自动
-
配置日志:
- 切换到"I/O"选项卡
- 输出(stdout):
C:\SpringBootApps\my-application\logs\service-stdout.log
- 错误(stderr):
C:\SpringBootApps\my-application\logs\service-stderr.log
- 点击"安装服务"
-
启动服务:
net start MySpringBootService
或通过服务管理控制台启动。
配置应用自启动
检查和配置服务自启动
-
确认服务自启动设置:
- 打开"服务"管理控制台(services.msc)
- 找到创建的服务
MySpringBootService
- 确认"启动类型"设置为"自动"
-
设置依赖关系(可选):
如果应用依赖于其他服务(如数据库),可以设置服务依赖:sc config MySpringBootService depend= MSSQLSERVER
设置 IIS 站点自启动
- 配置 IIS 站点自启动:
- 在 IIS 管理器中,选择创建的网站
- 在右侧操作面板中点击"高级设置"
- 将"启动自动启动"设置为"True"
- 点击"确定"
HTTPS 配置
配置 SSL 证书
-
获取 SSL 证书:
- 从证书颁发机构购买证书
- 使用 Let’s Encrypt 免费证书
- 创建自签名证书(仅测试环境)
-
安装证书:
- 在 IIS 管理器中选择服务器
- 双击"服务器证书"
- 在右侧操作面板中点击"导入"(如果已有证书文件)或"创建自签名证书"
- 按照向导完成证书导入或创建
-
绑定 HTTPS:
- 在 IIS 管理器中选择您的网站
- 在右侧操作面板中点击"绑定…"
- 点击"添加"
- 类型:
https
- IP 地址:
All Unassigned
(或指定 IP) - 端口:
443
- 主机名:您的域名(可选)
- SSL 证书:选择安装的证书
- 点击"确定"
配置 Spring Boot 应用支持 HTTPS
如果您希望 Spring Boot 应用本身也支持 HTTPS,可以在 application.properties
中添加:
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=your-password
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=tomcat
注意:当 IIS 已经配置了 HTTPS,通常不需要 Spring Boot 应用再配置 HTTPS。
日志配置
配置 IIS 日志
- 配置 IIS 站点日志:
- 在 IIS 管理器中选择您的网站
- 双击"日志记录"
- 设置合适的日志格式和路径
- 点击"应用"
配置 Spring Boot 日志
- 使用 logback 进行高级日志配置:
在C:\SpringBootApps\my-application\config
目录下创建logback-spring.xml
:<?xml version="1.0" encoding="UTF-8"?> <configuration><property name="LOG_PATH" value="logs" /><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_PATH}/application.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_PATH}/application.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><root level="INFO"><appender-ref ref="CONSOLE" /><appender-ref ref="FILE" /></root> </configuration>
部署多个应用
使用多个网站或应用程序
-
为每个 Spring Boot 应用创建独立服务:
使用 NSSM 为每个应用创建单独的 Windows 服务。 -
配置方法 A:多个 IIS 网站:
- 为每个 Spring Boot 应用创建独立的 IIS 网站
- 每个网站使用不同的端口或主机名
-
配置方法 B:使用应用程序:
- 创建一个主网站
- 为每个 Spring Boot 应用添加应用程序:
- 右键点击网站 → “添加应用程序”
- 别名:
app1
- 物理路径:为此应用创建的目录
- 点击"确定"
- 为每个应用程序配置单独的 URL 重写规则
性能优化
IIS 性能优化
-
启用静态和动态内容压缩:
- 在 IIS 管理器中选择服务器
- 双击"压缩"
- 启用静态和动态内容压缩
- 点击"应用"
-
配置输出缓存:
- 在 IIS 管理器中选择您的网站
- 双击"输出缓存"
- 添加适当的缓存规则
- 点击"应用"
-
优化应用程序池设置:
- 右键点击您的应用程序池 → “高级设置”
- 将"闲置超时"设置为更长时间(例如 0 表示永不超时)
- 配置合适的回收设置
- 点击"确定"
Spring Boot 性能优化
-
调整 JVM 参数:
更新服务启动参数,添加合适的 JVM 选项:-Xms512m -Xmx1024m -XX:+UseG1GC -XX:MaxGCPauseMillis=200
-
启用响应压缩:
在application.properties
中添加:server.compression.enabled=true server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain server.compression.min-response-size=2048
-
配置 Tomcat 连接池:
server.tomcat.max-threads=200 server.tomcat.min-spare-threads=20 server.tomcat.max-connections=10000
常见问题排查
应用无法启动
-
检查 Java 版本兼容性:
java -version
确保 Java 版本与 Spring Boot 应用兼容。
-
检查服务日志:
查看服务输出日志:C:\SpringBootApps\my-application\logs\service-stdout.log C:\SpringBootApps\my-application\logs\service-stderr.log
-
检查应用日志:
查看应用日志:C:\SpringBootApps\my-application\logs\application.log
-
检查端口占用:
netstat -ano | findstr :8080
如果端口已被占用,修改应用的端口配置。
网站连接错误
-
检查 IIS 站点是否启动:
在 IIS 管理器中确认网站状态为"已启动"。 -
检查 URL 重写规则:
确认 web.config 中的 URL 重写规则正确。 -
检查防火墙设置:
确保必要的端口已在 Windows 防火墙中开放。 -
检查反向代理配置:
确认 ARR 代理功能已启用。 -
检查 IIS 日志:
查看 IIS 日志了解具体错误。
常见错误码排查
-
HTTP 404:
- 检查 Spring Boot 应用是否正常运行
- 确认 URL 重写规则正确
- 确认请求路径与应用的上下文路径匹配
-
HTTP 500:
- 检查应用日志获取详细错误信息
- 确认应用配置无误
- 检查数据库连接等外部依赖
-
HTTP 502:
- 表示反向代理无法连接到后端 Spring Boot 应用
- 确认应用服务正在运行
- 检查端口配置
最佳实践
安全性最佳实践
-
配置 HTTPS:
始终使用 HTTPS 保护数据传输。 -
使用适当的防火墙规则:
仅开放必要的端口。 -
定期更新系统和组件:
保持 Windows、IIS、Java 和应用依赖的最新安全补丁。 -
实施适当的身份验证和授权:
考虑使用 Windows 认证或其他安全机制。 -
保护敏感配置信息:
避免在源代码中存储敏感信息,使用环境变量或加密配置。
维护最佳实践
-
实施自动化备份:
定期备份应用、配置和数据库。 -
监控应用和服务器性能:
使用适当的监控工具(如 Spring Boot Actuator、Windows 性能监视器)。 -
日志轮转和管理:
实施日志轮转策略,防止日志文件过大。 -
定期检查和清理临时文件:
维护服务器空间。 -
制定部署和回滚策略:
确保能够快速响应问题并恢复服务。
相关文章:
spring boot应用部署IIS
Windows IIS 部署 Spring Boot 应用详细指南 本文档提供了在 Windows Server 上使用 IIS 部署 Spring Boot 应用的完整步骤和最佳实践。 目录 概述前期准备Spring Boot 应用准备安装配置必要组件配置 IIS 站点配置反向代理配置 Windows 服务配置应用自启动HTTPS 配置日志配置…...
Linux系统之部署TestNet资产管理系统
Linux系统之部署TestNet资产管理系统 一、TestNet 介绍1.1 TestNet简介1.2 主要特点1.3 主要使用场景 二、本次实践规划2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、部署TestNet系统4.1 下载T…...
@EnableAsync+@Async源码学习笔记之六
接上文,我们本文分析 AsyncExecutionAspectSupport 的源码: package org.springframework.aop.interceptor;import java.lang.reflect.Method; import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.CompletableFu…...
SQL系列:常用函数
1、【MySQL】合并字段函数(列转行) 它可以将两个字段中的数据合并到一个字段中。 1)CONCAT函数 CONCAT函数可以将多个字段中的数据合并到一个字段中。它的语法格式如下: SELECT CONCAT(字段1,字段2,...字段N) FROM 表名;SELEC…...
Git 中修改某个特定的commit提交内容
在 Git 中修改某个特定的提交(commit)通常需要使用 交互式变基(Interactive Rebase) 或 修改提交(Commit Amend)。以下是不同场景下的具体操作步骤: 一、修改最近的提交(最新提交&am…...
FHS --- linux目录结构(部分目录解释)
根目录(/) 的意义和内容 : 根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的,同时根目录也与开机/还原/系统修复等动作有关 。 由于系统开机时需要特定的开机软件、核心档案、开机所需程序…...
不带无线网卡的Linux开发板上网方法
I.MX6ULL通过网线上网 设置WLAN共享修改开发板的IP 在使用I.MX6ULL-MINI开发板学习Linux的时候,有时需要更新或者下载一些资源包,但是开发板本身是不带无线网卡或者WIFI芯片的,尝试使用网口连接笔记本,笔记本通过无线网卡连接WIFI…...
图书管理系统C语言
图书管理系统C语言代码示例。 该系统可以实现图书信息(包含图书编号、书名、作者、出版社、价格、库存数量)的录入、显示、查询、修改、删除等功能,还具备一定的错误处理和输入验证。 #include <stdio.h> #include <stdlib.h> …...
关于大型语言模型的“生物学”
我知道我们已经聊过很多次,关于LLM是怎么运作的,它们的影响力,还有它们的使用场景。但尽管现在有那么多讲LLM的文章,它们本质上还是个黑箱。 但我们真正要问自己的问题是,为什么理解这些系统的内部结构很重要…...
图像预处理-图像边缘检测(流程)
一.高斯滤波 因为图像边缘检测就是把像素值有差异的地方提取出来,所以噪声会有很大影响,因此需要对图像进行平滑处理,高斯滤波是流程中常用的方法。 二.计算图像的梯度与方向 过程中通常使用sobel算子进行梯度计算,在OpenCV中&am…...
解锁思想道德修养的奥秘:用思维导图开启智慧之旅
在我们的成长过程中,思想道德修养如同基石,奠定了我们为人处世、面对生活挑战的基本态度和准则。而如何高效地梳理和掌握思想道德修养的丰富内容呢?思维导图这一强大工具为我们提供了独特视角和便捷途径。 思想道德修养的关键板块 道德理论…...
swagger的简介及使用方法
Swagger 是一个用于描述、生成、文档化和测试 RESTful API 的开源工具集。它可以自动生成 API 文档,帮助开发者理解和使用 API。Swagger 由 Swagger.io 提供,并已经发展成了一套广泛应用于 API 设计和文档的标准。 Swagger 项目的历史可以追溯到 2010 年…...
解决Ubuntu图形化界面操作适配问题
1 缘起 使用Ubuntu GNOME图形化系统作为开发机, 遇到与Windows操作不一致的地方,比如PyCharm、IntelliJ时无法正确代码跳转, 如CtrlAltLeft,CtrlAltRight无法正常在代码级别跳转,只能在文件级别跳转。 基于这个开端&a…...
End-to-End从混沌到秩序:基于LLM的Pipeline将非结构化数据转化为知识图谱
摘要:本文介绍了一种将非结构化数据转换为知识图谱的端到端方法。通过使用大型语言模型(LLM)和一系列数据处理技术,我们能够从原始文本中自动提取结构化的知识。这一过程包括文本分块、LLM 提示设计、三元组提取、归一化与去重,最终利用 NetworkX 和 ipycytoscape 构建并可…...
使用Ingress发布应用程序
使用Ingress发布应用程序 文章目录 使用Ingress发布应用程序[toc]一、什么是Ingress二、定义Ingress三、什么是Ingress控制器四、部署nginx Ingress控制器1.了解nginx Ingress控制器的部署方式2.安装nginx Ingress控制器3.本地实际测试 五、使用Ingress对外发布应用程序1.使用D…...
llama-factory微调报错:
报错信息 [INFO] [utils.py:789:see_memory_usage] CPU Virtual Memory: used 81.51 GB, percent 64.9% W0419 10:14:27.573000 108354 site-packages/torch/distributed/elastic/multiprocessing/api.py:897] Sending process 108373 closing signal SIGTERM W0419 10:14:27…...
【LLaMAFactory】LoRa + 魔搭 微调大模型实战
前言 环境准备 之前是在colab上玩,这次在国内的环境上玩玩。 魔搭:https://www.modelscope.cn/ 现在注册,有100小时的GPU算力使用。注册好了之后: 魔搭社区 这里使用qwen2.5-7B-Instruct模型,这里后缀Instruct是指…...
【愚公系列】《Python网络爬虫从入门到精通》054-Scrapy 文件下载
🌟【技术大咖愚公搬代码:全栈专家的成长之路,你关注的宝藏博主在这里!】🌟 📣开发者圈持续输出高质量干货的"愚公精神"践行者——全网百万开发者都在追更的顶级技术博主! …...
db中查询关于null的sql该怎么写
正确示例 # 等于null select * from 表名 where 字段名 is NULL; # 不等于null select * from 表名 where 字段名 is not NULL;若需要同时判断字段不等于某个值且不为null select * from users where age ! 30 and age is not null; select * from users where age ! 30 or a…...
React 文章列表
自定义hook 在src/hooks文件夹下封装 useChannel.js // 获取频道列表的逻辑 import { useEffect , useState } from "react" import { getChannelAPI } from "/apis/article"function useChannel(){// 获取频道的逻辑 const [channelList,setChannelList…...
中间件--ClickHouse-12--案例-1-日志分析和监控
1、案例背景 一家互联网公司需要实时分析其服务器日志、应用日志和用户行为日志,以快速发现潜在问题并优化系统性能。 2、需求分析 目标:实时分析日志数据,快速发现问题并优化系统性能。数据来源: 服务器日志:如 Ng…...
QML中的3D功能--自定义着色器开发
在 Qt 3D 中使用自定义着色器可以实现高度定制化的渲染效果。以下是完整的自定义着色器开发方案。 一、基础着色器创建 1. 创建自定义材质 qml import Qt3D.Core 2.15 import Qt3D.Render 2.15 import Qt3D.Extras 2.15Entity {components: [Transform { translation: Qt.v…...
如何防止接口被刷
目录 🛡️ 一、常见的防刷策略分类 🔧 二、技术实现细节 ✅ 1. 基于 IP 限流 ✅ 2. 给接口加验证码 ✅ 3. 使用 Token 限制接口访问权限 ✅ 4. 给接口加冷却时间(验证码类经典) ✅ 5. 使用滑动窗口限流算法(更精…...
18、TimeDiff论文笔记
TimeDiff **1. 背景与动机****2. 扩散模型基础****3. TimeDiff 模型****3.1 前向扩散过程****3.2 后向去噪过程** 4、TimeDiff(架构)原理训练推理其他关键点解释 DDPM(相关数学)1、正态分布2、条件概率1. **与多个条件相关**&…...
docker底层原理
一句话,dockerfile里面的一行指令,就是一个layer层 docker底层原理 在机器上安装docker服务器端的程序,就会在机器上自动创建以下目录,默认安装路径是/var/lib/ docker服务器端的工作目录的作用如下,镜像的每一层的元数…...
YOLO拓展-NMS算法
1.概述 NMS(non maximum suppression)即非极大值抑制,其本质就是搜索局部极大值,抑制非极大值元素,可以理解为局部最大搜索。 这里不讨论通用的NMS算法(参考论文《Efficient Non-Maximum Suppression》对1维和2维数据…...
Docker Swarm 容器与普通 Docker 容器的网卡差异
问题背景 在 Docker Swarm 网络空间启动的容器有两张网卡(eth0 和 eth1),而普通 Docker 容器只有一张网卡(eth0)。以下通过分析 ip addr show 和 ip link show 的输出,解释原因。 命令输出解析 Docker S…...
【Linux】线程ID、线程管理、与线程互斥
📚 博主的专栏 🐧 Linux | 🖥️ C | 📊 数据结构 | 💡C 算法 | 🌐 C 语言 上篇文章: 【Linux】线程:从原理到实战,全面掌握多线程编程!-CSDN博客 下…...
服务器简介(含硬件外观接口介绍)
服务器(Server)是指提供资源、服务、数据或应用程序的计算机系统或设备。它通常比普通的个人计算机更强大、更可靠,能够长时间无间断运行,支持多个用户或客户端的请求。简单来说,服务器就是专门用来存储、管理和提供数…...
自动驾驶---决策规划之导航增强端到端
1 背景 自动驾驶算法通常包括几个子任务,包括3D物体检测、地图分割、运动预测、3D占用预测和规划。近年来,端到端方法将多个独立任务整合到多任务学习中,优化整个系统,包括中间表示,以实现最终的规划任务。随着端到端技…...
Datawhale AI春训营 世界科学智能大赛--合成生物赛道:蛋白质固有无序区域预测 小白经验总结
一、报名大赛 二、跑通baseline 在魔塔社区创建实例,根据教程完成速通第一个分数~ Datawhale-学用 AI,从此开始 三、优化实例(这里是我的学习优化过程) 1.先将官方给的的模型训练实例了解一遍(敲一敲代码) 训练模…...
基于Java(Struts2 + Hibernate + Spring)+MySQL实现的(Web)在线预约系统
基于Struts2 Hibernate Spring的在线预约系统 1.引言 1.1编写目的 针对医院在线预约挂号系统,提供详细的设计说明,包括系统的需求、功能模块、界面设计、设计方案等,以辅助开发人员顺利进行系统的开发并让项目相关者可以对这个系统进行分…...
PHP获取大文件行数
在PHP中获取大文件的行数时,直接读取整个文件到内存中可能会导致内存溢出,特别是对于非常大的文件。因此,最有效的方法是逐行读取文件并计数。以下是一些实现方法: 方法一:使用 fgets() fgets() 函数逐行读取文件&am…...
2024年网站开发语言选择指南:PHP/Java/Node.js/Python如何选型?
2024年网站开发语言选择指南:PHP/Java/Node.js/Python如何选型? 一、8大主流Web开发语言技术对比 1. PHP开发:中小型网站的首选方案 最新版本:PHP 8.3(2023年11月发布)核心优势: 全球78%的网站…...
Win7模拟器2025中文版:重温经典,掌上电脑体验
随着科技的快速发展,现代操作系统变得越来越高级,但许多用户仍然怀念经典的Windows 7系统。如果你也想重温那种熟悉的操作体验,Win7模拟器2025中文版 是一个不错的选择。这款软件能够让你在手机上轻松实现Windows 7系统的模拟,带来…...
HTML5+CSS3小实例:CSS立方体
实例:CSS立方体 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0&q…...
使用 Vite 快速搭建现代化 React 开发环境
1.检查环境 说明:检测环境,node版本为18.20.6。 2.创建命令 说明:创建命令,选择对应的选项。 npm create vitelatest 3.安装依赖 说明:安装相关依赖。 npm i...
Linux网络编程——基于ET模式下的Reactor
一、前言 上篇文章中我们已经讲解了多路转接剩下的两个接口:poll和epoll,并且知道了epoll的两种工作模式分别是 LT模式和ET模式,下来我们就实现的是一个简洁版的 Reactor,即半同步半异步I/O,在linux网络中,…...
【现代深度学习技术】循环神经网络04:循环神经网络
【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈PyTorch深度学习 ⌋ ⌋ ⌋ 深度学习 (DL, Deep Learning) 特指基于深层神经网络模型和方法的机器学习。它是在统计机器学习、人工神经网络等算法模型基础上,结合当代大数据和大算力的发展而发展出来的。深度学习最重…...
1. 认识DartGoogle为Flutter选择了Dart语言已经是既
1. 认识Dart Google为Flutter选择了Dart语言已经是既定的事实,无论你多么想用你熟悉的语言,比如JavaScript、TypeScript、ArkTS等来开发Flutter,至少目前都是不可以的。 Dart 是由谷歌开发的计算机编程语言,它可以被应用于 Web/…...
学习设计模式《三》——适配器模式
一、基础概念 适配器模式的本质是【转换匹配,复用功能】; 适配器模式定义:将一个类的接口转换为客户希望的另外一个接口;适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式的目的:复用…...
【Java面试系列】Spring Boot微服务架构下的分布式事务处理与性能优化 - 2025-04-19详解 - 3-5年Java开发必备知识
【Java面试系列】Spring Boot微服务架构下的分布式事务处理与性能优化 - 2025-04-19详解 - 3-5年Java开发必备知识 引言 在微服务架构中,分布式事务处理和性能优化是面试中高频出现的主题。随着系统规模的扩大,如何保证数据一致性和系统性能成为开发者…...
Elasticsearch只返回指定的字段(用_source)
在Elasticsearch中,当你想要查询文档但不返回所有字段,只返回指定的字段(比如这里的id字段),你可以使用_source参数来实现这一点。但是,有一点需要注意:Elasticsearch的_source字段默认是返回的…...
【Linux “sed“ 命令详解】
本章目录: 1. 命令简介sed 的优势: 2. 命令的基本语法和用法基本语法:参数说明:常见用法场景:示例1:替换文本示例2:删除空行示例3:从命令输出中处理内容 3. 命令的常用选项及参数常用命令动作&a…...
JMETER使用
接口测试流程: 1.获取接口文档,熟悉接口业务 2.编写接口测试用例以及评审 正例:输入正常的参数,验证接口能否正常返回 反例:权限异常(为空、错误、过期)、参数异常(为空、长度异常、类型异常)、其他异常(黑名单、调用次数限制)、兼容异常(一个接口被多种…...
JavaWeb 课堂笔记 —— 13 MySQL 事务
本系列为笔者学习JavaWeb的课堂笔记,视频资源为B站黑马程序员出品的《黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖SpringMyBatisSpringMVCSpringBoot等)》,章节分布参考视频教程,为同样学习…...
离线安装elasticdump并导入和导出数据
离线安装elasticdump 在 CentOS 或 RHEL 系统上安装 elasticdump,你可以使用 npm(Node.js 的包管理器)来安装,因为 elasticdump 是一个基于 Node.js 的工具。以下是步骤 先在外网环境下安装 下载nodejs和npm(注意x8…...
WhatTheDuck:一个基于浏览器的CSV查询工具
今天给大家介绍一个不错的小工具:WhatTheDuck。它是一个免费开源的 Web 应用程序,允许用户上传 CSV 文件并针对其内容执行 SQL 查询分析。 WhatTheDuck 支持 SQL 代码自动完成以及语法高亮。 WhatTheDuck 将上传的数据存储为 DuckDB 内存表,继…...
关于数字信号与图像处理——基于Matlab的图像增强技术
本篇博客是在做数字信号与图像处理实验中的收获。 具体内容包括:根据给定的代码放入Matlab中分别进行两次运行测试——比较并观察运行后的实验结果与原图像的不同点——画出IJ的直方图,并比较二者差异。接下来会对每一步进行具体讲解。 题目:…...
MySQL数据库 - 锁
锁 此笔记参考黑马教程,仅学习使用,如有侵权,联系必删 文章目录 锁1. 概述1.1 介绍1.2 分类 2. 全局锁2.1 介绍2.2 语法2.3 特点(弊端) 3. 表级锁3.1 介绍3.2 表锁3.3 元数据锁(meta data lock࿰…...