若依前后端分离版部署实战:从环境搭建到服务上线 📅 发布时间:2026/7/4 2:35:00 👁️ 浏览次数: 1. 环境准备打造坚实的服务器地基朋友们今天咱们来聊聊一个非常实际的话题——如何从零开始把若依这个优秀的前后端分离项目稳稳当当地部署到一台全新的服务器上。我见过不少新手朋友一上来就急着去改代码、打包结果在环境配置这一步就卡住了折腾半天。其实啊部署这事儿就像盖房子地基打好了后面才能又快又稳。咱们今天的目标就是手把手带你打好这个“地基”。这个地基主要就是四样东西数据库MySQL、缓存Redis、Java运行环境JDK和Web服务器Nginx。别被这些名词吓到咱们一步步来我保证你跟着做绝对能搞定。我建议你准备一台干净的Ubuntu 20.04 LTS版本的服务器这个版本比较稳定社区支持也好。咱们就从这里开始。1.1 安装与配置MySQL 8.0数据库是咱们应用的核心数据都存这儿呢。Ubuntu 20.04的官方软件源里默认的MySQL版本就是8.0所以安装起来特别方便。不过直接从国外源下载可能会很慢咱们第一步先给系统换个“快递站”换成国内的阿里云镜像源速度能飞起来。首先备份一下系统原来的软件源列表这是个好习惯万一出问题还能还原。sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak然后用你喜欢的编辑器比如vim或nano打开这个文件sudo vim /etc/apt/sources.list把文件里原来的内容都注释掉或者删掉然后把从阿里云镜像站mirrors.aliyun.com找到的对应Ubuntu 20.04代号focal的源地址粘贴进去。保存退出后更新一下软件包列表sudo apt-get update接下来安装MySQL服务器就一句话的事sudo apt-get install -y mysql-server安装完成后MySQL服务会自动启动。你可以用systemctl status mysql看看它是不是在欢快地运行着。安装是简单但配置才是关键。MySQL 8.0安装后root用户默认使用了一种叫auth_socket的插件认证这意味着你只能在服务器本机上用系统权限去登录不能直接用密码远程连接。这显然不符合我们部署应用的需求。所以咱们得改一下。先用sudo mysql命令直接进入MySQL命令行这时候它认的是你的系统权限。然后依次执行下面几条SQL语句-- 切换到mysql系统数据库 USE mysql; -- 将root用户的认证插件改为可以使用密码的mysql_native_password ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY 你的密码; -- 允许root用户从任何主机连接生产环境建议限制IP这里为了演示方便 UPDATE user SET host% WHERE userroot; -- 刷新权限让修改生效 FLUSH PRIVILEGES;这里务必要把你的密码换成你自己设定的强密码比如RuoYi2024这样的组合。执行完后退出MySQL命令行。光改用户还不够MySQL默认只监听本地的连接127.0.0.1。我们需要修改配置文件让它监听所有网络接口。找到MySQL的配置文件通常在/etc/mysql/mysql.conf.d/mysqld.cnf找到bind-address这一行把它改成bind-address 0.0.0.0最后重启MySQL服务让所有配置生效sudo systemctl restart mysql。现在你的MySQL就已经准备好为若依服务了。你可以用数据库管理工具比如Navicat或DBeaver尝试用服务器的IP、端口3306、用户名root和你刚才设置的密码连接一下确保能连上。1.2 编译安装Redis 7.xRedis是内存数据库主要用来做缓存和会话存储能极大提升应用速度。官方推荐通过源码编译安装这样能获得最佳性能和最新特性。别怕编译跟着我做一点都不复杂。首先找个地方放我们的安装包和软件。我习惯在/opt目录下操作sudo mkdir -p /opt/software-pkg /opt/software cd /opt/software-pkg然后去Redis官网redis.io下载最新稳定版的源码包或者用国内的镜像站比如华为云镜像下载速度更快。这里以7.2.4版本为例wget https://mirrors.huaweicloud.com/redis/redis-7.2.4.tar.gz下载完成后解压到我们准备好的软件目录tar zxvf redis-7.2.4.tar.gz -C /opt/software/现在进入解压后的目录cd /opt/software/redis-7.2.4。编译Redis需要一些基本的编译工具先安装它们sudo apt-get install -y gcc make automake autoconf libtool tcl那个tcl包很重要后面运行测试需要它提前装好省事儿。接着执行编译命令sudo make这个过程会花几分钟耐心等待。编译完成后强烈建议跑一下测试确保编译出的Redis是健康的sudo make test如果看到一大堆[ok]的测试通过信息最后没有致命的错误就说明没问题。然后进行安装这会把可执行文件复制到系统目录如/usr/local/binsudo make install安装好了但直接运行还不行我们需要一个配置文件。源码目录里有个redis.conf模板我们复制一份出来修改。我建议在安装目录下操作cd /opt/software/redis-7.2.4 cp redis.conf redis.conf.bak # 备份原配置 vim redis.conf在这个文件里我们需要修改几个关键地方。用搜索功能在vim里按/然后输入关键词找到这些行并修改找到bind 127.0.0.1把它注释掉前面加#或者改成bind 0.0.0.0允许远程连接。找到daemonize no改成daemonize yes让Redis以守护进程后台模式运行。找到# requirepass foobared去掉注释#并把foobared改成你自己的密码比如requirepass RuoYiRedis123。找到dir ./改成dir /opt/software/redis-7.2.4/data/。这是指定数据持久化文件RDB/AOF存放的目录我们先创建它mkdir /opt/software/redis-7.2.4/data。还可以找到logfile 改成logfile /opt/software/redis-7.2.4/log/redis.log同样需要创建日志目录mkdir /opt/software/redis-7.2.4/log。配置完成后就可以用指定配置文件的方式启动Redis了redis-server /opt/software/redis-7.2.4/redis.conf用ps -ef | grep redis看看进程在不在。为了管理方便我们最好把它配置成系统服务可以用systemctl来启动、停止、设置开机自启。新建一个服务文件sudo vim /etc/systemd/system/redis.service把下面内容贴进去注意ExecStart和配置文件的路径要和你实际的一致[Unit] DescriptionRedis In-Memory Data Store Afternetwork.target [Service] Typeforking ExecStart/usr/local/bin/redis-server /opt/software/redis-7.2.4/redis.conf ExecStop/usr/local/bin/redis-cli -a 你的Redis密码 shutdown Restartalways Userroot Grouproot [Install] WantedBymulti-user.target保存退出后重新加载系统服务配置sudo systemctl daemon-reload。现在你就可以用sudo systemctl start redis来启动用sudo systemctl enable redis设置开机自启了。运行sudo systemctl status redis检查一下状态显示active (running)就大功告成。2. 运行环境与网关部署基础服务MySQL和Redis已经就位接下来我们要搭建若依后端运行所需要的Java环境以及作为前端入口和反向代理的Nginx。这两步走通了前后端通信的桥梁就算架设好了。2.1 安装与配置JDK 8若依后端是基于Java的Spring Boot项目所以JDK是必须的。虽然现在JDK版本已经很高了但很多老牌企业级项目对JDK 8也称JDK 1.8的兼容性最稳定若依也推荐使用它。咱们去Oracle官网下载或者使用OpenJDK都可以。我这里以Oracle JDK 8u212为例。首先把下载好的jdk-8u212-linux-x64.tar.gz上传到服务器的/opt/software-pkg目录。你可以用scp命令或者像WinSCP这样的图形化工具。然后解压到我们的软件目录cd /opt/software-pkg tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/software/解压后你会看到/opt/software目录下多了一个jdk1.8.0_212的文件夹。接下来要配置环境变量告诉系统Java命令在哪里。我们修改全局配置文件/etc/profilesudo vim /etc/profile在文件的最后添加这么几行export JAVA_HOME/opt/software/jdk1.8.0_212 export JRE_HOME$JAVA_HOME/jre export CLASSPATH.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH$PATH:$JAVA_HOME/bin:$JRE_HOME/bin注意JAVA_HOME的路径一定要和你实际解压的路径完全一致。保存退出后让配置立刻生效source /etc/profile。现在验证一下安装是否成功java -version如果屏幕上打印出类似“java version 1.8.0_212”的信息恭喜你Java环境配置成功了。这一步看似简单但路径千万不能错不然后面打包运行都会出问题。2.2 编译安装与配置NginxNginx在这里扮演两个重要角色一是作为Web服务器托管我们前端打包后的静态文件HTML、CSS、JS二是作为反向代理服务器把前端发来的API请求转发到后端的Spring Boot应用。咱们还是采用源码编译安装这样灵活性最高。和安装Redis类似我们先下载Nginx源码包。我选用比较稳定的1.12.2版本当然你也可以用更新版。进入软件包目录下载cd /opt/software-pkg wget https://mirrors.huaweicloud.com/nginx/nginx-1.12.2.tar.gz解压tar -zxvf nginx-1.12.2.tar.gz -C ./。进入解压目录cd nginx-1.12.2。在编译之前需要安装一些依赖库sudo apt-get install -y gcc make libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev这些库分别用于处理正则表达式、压缩和SSL加密。接着我们配置编译选项。./configure命令可以指定安装路径、启用哪些模块等。我们把它安装到/opt/software/nginx-1.12.2./configure --prefix/opt/software/nginx-1.12.2如果配置过程没有报错就可以编译并安装了make sudo make install编译过程可能会遇到一些警告只要不是错误error就不用管。安装完成后切换到安装目录测试一下配置文件语法是否正确cd /opt/software/nginx-1.12.2 ./sbin/nginx -t你可能会看到一个错误提示“nginx: [emerg] bind() to 0.0.0.0:80 failed (13: Permission denied)”。这是因为在Linux系统上1024以下的端口如80、443需要root权限才能监听。我们的Nginx是用普通用户安装和启动的所以没有权限。有两种解决方法一是用sudo启动Nginx二是赋予Nginx可执行文件特殊的权限。我推荐第二种一劳永逸sudo setcap cap_net_bind_serviceep /opt/software/nginx-1.12.2/sbin/nginx这条命令赋予了nginx程序绑定特权端位的“能力”capability。现在再运行./sbin/nginx -t应该就看到“syntax is ok”和“test is successful”的提示了。最后启动Nginx./sbin/nginx。用ps -ef | grep nginx查看应该能看到一个master进程和一个worker进程。打开浏览器访问你的服务器IP地址如果看到“Welcome to nginx!”的页面说明Nginx已经成功运行并监听了80端口。3. 若依项目本地配置与测试服务器环境全部准备好了现在我们把目光转回本地开发机。在把项目部署到服务器之前一定要在本地把前后端都跑通确保代码本身没问题。这一步能帮你排除掉很多低级错误避免在服务器上抓瞎。3.1 后端项目配置与数据库初始化首先从Gitee上克隆若依前后端分离版的项目代码git clone https://gitee.com/y_project/RuoYi-Vue.git。用你熟悉的IDE比如IntelliJ IDEA打开后端项目。在ruoyi-admin模块的src/main/resources目录下找到application-druid.yml文件这里是数据库连接配置。你需要修改以下几处# 数据源配置 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver url: jdbc:mysql://你的服务器IP:3306/ry-vue?useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT%2B8 username: root password: 你之前设置的MySQL密码把你的服务器IP和密码替换成真实的。注意这里连接的是服务器的MySQL所以请确保服务器的3306端口对你这台开发机是开放的可以在服务器安全组或防火墙规则里放行。接着找到application.yml文件配置Redis# redis 配置 redis: # 地址 host: 你的服务器IP # 端口默认为6379 port: 6379 # 数据库索引 database: 0 # 密码 password: 你之前设置的Redis密码 # 连接超时时间 timeout: 10s同样替换IP和密码。这里有个小细节若依的Redis配置里密码项叫password而Redis本身配置是requirepass名字要对应上。接下来是初始化数据库。在你的服务器MySQL里创建一个新的数据库比如叫ry-vue字符集用utf8mb4。然后在克隆下来的项目里找到sql文件夹里面通常有quartz.sql和ry_2024xxxx.sql日期可能不同两个文件。用数据库管理工具连接到服务器的ry-vue数据库按顺序执行这两个SQL文件。执行成功后数据库里应该会出现几十张表包括用户、菜单、角色、部门等系统基础表。3.2 前端项目配置与本地联调后端配置好后先别急着启动。我们来看看前端。前端项目在ruoyi-ui目录下。用VSCode或WebStorm打开这个文件夹。首先安装依赖。在终端里进入ruoyi-ui目录运行npm install # 或者如果你网络不好可以使用淘宝镜像 # npm install --registryhttps://registry.npmmirror.com这个过程会下载所有需要的包时间取决于你的网络。安装成功后我们先不改动任何代码直接启动前端开发服务器。在package.json文件里你应该能看到一个dev脚本。运行npm run dev命令执行后它会启动一个本地开发服务器通常监听http://localhost:80。同时前端项目配置了开发环境的代理。打开vue.config.js文件你会看到类似下面的配置devServer: { port: port, open: true, proxy: { [process.env.VUE_APP_BASE_API]: { target: http://localhost:8080, changeOrigin: true, pathRewrite: { [^ process.env.VUE_APP_BASE_API]: } } } }这意思是所有以/dev-api开头的请求都会被转发到http://localhost:8080也就是我们即将启动的后端服务。现在回到你的IDE启动若依的后端Spring Boot应用。找到RuoYiApplication这个主类运行它。控制台会输出大量日志看到类似“Started RuoYiApplication in X seconds”的字样就说明后端启动成功了。此时你的浏览器应该已经自动打开了前端登录页面如果没有手动访问http://localhost。默认的用户名是admin密码是admin123。尝试登录然后点点各个菜单比如系统管理下的用户管理、角色管理。如果页面能正常加载数据操作增删改查也都没问题那么恭喜你本地前后端联调成功这说明你的代码、数据库连接、Redis缓存都是正常的。这一步的成功为服务器部署扫清了最大的障碍。4. 项目打包与服务器部署实战本地测试通过意味着我们的代码和配置是正确的。现在我们要把前后端分别打包然后上传到服务器让它们在生产环境中跑起来。这个过程就像把在实验室里调试好的机器搬到工厂车间去正式投产。4.1 后端JAR包打包与部署首先打包后端。在IDE里使用Maven的打包命令。如果你用的是IntelliJ IDEA右侧找到Maven工具栏展开ruoyi-admin模块先执行clean再执行package。或者直接在项目根目录下命令行执行mvn clean package -DskipTests。-DskipTests参数是为了跳过测试加快打包速度。打包成功后在ruoyi-admin/target目录下你会找到ruoyi-admin.jar这个文件。这就是我们可独立运行的Spring Boot应用包。把这个JAR包上传到服务器的某个目录我习惯放在/opt/project/ruoyi下。同时在这个目录下创建好存放日志的文件夹sudo mkdir -p /opt/project/ruoyi/logs上传JAR包后我们就可以启动它了。但这里有个关键点我们不能简单地用java -jar命令在前台运行因为一旦关闭终端应用就停了。我们需要使用nohup命令让它在后台运行并且把输出重定向到日志文件方便日后排查问题。cd /opt/project/ruoyi nohup java -jar ruoyi-admin.jar --server.port8080 ./logs/console.log 21 这条命令分解一下nohup让进程忽略挂断信号即使终端关闭也不停止。java -jar ruoyi-admin.jar启动Spring Boot应用。--server.port8080指定应用运行在8080端口和本地开发时一致。 ./logs/console.log将标准输出重定向到console.log文件。21将标准错误也重定向到标准输出也就是同一个日志文件。在后台运行。执行后可以用jps命令查看Java进程或者tail -f ./logs/console.log实时查看启动日志确认没有报错。你还需要修改后端项目中关于日志文件路径的配置。找到logback-spring.xml文件将日志路径改为服务器上的绝对路径比如之前创建的/opt/project/ruoyi/logs然后重新打包上传。这样所有的应用日志就会规整地存放在服务器上而不是JAR包所在的当前目录。4.2 前端项目构建与Nginx配置前端需要打包成静态资源。进入本地的ruoyi-ui目录运行生产环境构建命令npm run build:prod这个过程会进行代码压缩、优化最终在项目目录下生成一个dist文件夹。这个文件夹里就是所有前端静态文件index.html, css, js等。把这个dist文件夹整个压缩成dist.zip然后上传到服务器。在服务器上我们创建一个专门存放前端文件的目录并解压sudo mkdir -p /opt/project/ruoyi/ruoyi-ui # 假设dist.zip上传到了/opt/project/ruoyi目录 cd /opt/project/ruoyi sudo unzip dist.zip -d ruoyi-ui/ # 解压后dist文件夹里的内容应该在 /opt/project/ruoyi/ruoyi-ui 里现在前后端的文件都在服务器上了但它们还是独立的。我们需要通过Nginx把两者“粘合”起来。编辑Nginx的配置文件通常位于/opt/software/nginx-1.12.2/conf/nginx.conf。sudo vim /opt/software/nginx-1.12.2/conf/nginx.conf我们需要修改两个核心的location块。找到server块在里面进行配置server { listen 80; server_name localhost; # 你的服务器IP或域名 # 前端静态文件服务 location / { root /opt/project/ruoyi/ruoyi-ui; index index.html index.htm; # 解决Vue/React等单页应用路由刷新404问题 try_files $uri $uri/ /index.html; } # 后端API代理 location /prod-api/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # 如果后端服务需要较长时间处理可适当增加超时时间 proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; } # 其他配置... }这里解释一下关键配置location /所有根路径请求比如访问首页都由Nginx从/opt/project/ruoyi/ruoyi-ui目录提供静态文件。try_files指令非常重要它让Vue这种前端路由应用在浏览器直接访问某个路由地址如/system/user时也能正确返回index.html而不是404。location /prod-api/所有以/prod-api/开头的请求都被Nginx转发到本机127.0.0.1的8080端口也就是我们刚才启动的后端Spring Boot应用。proxy_set_header那些行是为了将客户端的真实IP等信息传递给后端。配置修改完成后检查语法sudo /opt/software/nginx-1.12.2/sbin/nginx -t。确认无误后重新加载Nginx配置平滑重启不会中断服务sudo /opt/software/nginx-1.12.2/sbin/nginx -s reload现在打开浏览器访问你的服务器IP地址比如http://你的服务器IP。你应该能看到若依的登录页面。用admin/admin123登录尝试操作一下。如果一切顺利那么恭喜你你已经成功完成了若依前后端分离项目的完整部署5. 部署后的检查、优化与故障排查服务上线了但工作还没完。作为一个负责任的开发者我们得确保服务是稳定、可维护的。这里分享几个我踩过坑之后总结的必做检查和优化点。5.1 服务健康检查与日志监控首先确认所有服务都在正常运行。逐一检查MySQLsudo systemctl status mysql状态应为active (running)。可以用mysql -u root -p登录试试。Redissudo systemctl status redis同样应为active。用redis-cli -a 你的密码 ping如果返回PONG就是好的。后端Spring Bootps -ef | grep java找到你的ruoyi-admin.jar进程。或者直接看日志tail -f /opt/project/ruoyi/logs/console.log看看有没有持续的错误信息。Nginxps -ef | grep nginx应该能看到master和worker进程。sudo /opt/software/nginx-1.12.2/sbin/nginx -t检查配置。日志是排查问题的生命线。一定要养成看日志的习惯。后端的日志我们已经指定了位置。Nginx的访问日志和错误日志通常在安装目录下的logs文件夹里access.log和error.log。你可以用tail、less命令实时查看或者用grep过滤错误信息。比如查看Nginx最近的错误sudo tail -f /opt/software/nginx-1.12.2/logs/error.log。5.2 安全与性能基础优化默认部署为了演示方便很多设置是不安全的。在生产环境必须调整。MySQL安全我们之前允许了root用户远程连接这很危险。生产环境中应该创建一个专属的、权限受限的数据库用户给应用使用并限制其连接IP。命令类似CREATE USER ruoyi_user应用服务器IP IDENTIFIED BY 强密码; GRANT SELECT, INSERT, UPDATE, DELETE ON ry-vue.* TO ruoyi_user应用服务器IP; FLUSH PRIVILEGES;然后在若依的application-druid.yml里使用这个新用户和强密码。Redis安全确保Redis密码足够复杂并且配置文件redis.conf中的bind最好绑定到内网IP如bind 服务器内网IP 127.0.0.1而不是0.0.0.0。还可以考虑重命名或禁用高危命令如FLUSHALL,CONFIG。Nginx优化在nginx.conf的http块中可以做一些基础优化http { # 隐藏Nginx版本号增加安全性 server_tokens off; # 设置客户端请求体最大值防止过大请求攻击 client_max_body_size 20m; # 启用Gzip压缩加快前端资源传输 gzip on; gzip_min_length 1k; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xmlrss text/javascript; # 其他配置... }Spring Boot应用确保application.yml中的prod配置文件被激活并且关闭了开发阶段的特性如spring boot devtools。检查服务器的防火墙如ufw或安全组规则只开放必要的端口如80, 443, 22。5.3 常见问题与快速排查部署过程很少一帆风顺这里列举几个我常遇到的问题和解决思路前端页面能打开但登录后一直加载或提示网络错误这几乎肯定是后端API请求没通。打开浏览器开发者工具F12看Network网络选项卡。尝试登录观察发送的请求。如果/prod-api/login请求失败状态码非200说明Nginx反向代理配置有问题。检查Nginx配置中proxy_pass的地址和端口是否正确后端服务是否真的在运行jps或netstat -tlnp | grep 8080。查看Nginx的error.log和后端的console.log通常会有明确的错误信息。登录成功但菜单加载不出来或提示权限错误这多半是Redis连接问题。检查application.yml中Redis的host、port、password是否与服务器上的Redis配置一致。可以登录服务器用redis-cli连接Redis手动尝试set、get一个值看是否正常。静态资源如图片、CSS404检查Nginx配置中location /的root路径是否正确指向了前端dist文件解压后的目录。确认目录权限Nginx进程用户通常是www-data或nginx是否有权读取该目录。可以用sudo -u www-data ls /opt/project/ruoyi/ruoyi-ui来测试。数据库连接失败检查MySQL是否允许远程连接bind-address防火墙是否放行了3306端口以及若依配置中的数据库名、用户名、密码是否正确。可以在服务器上先用mysql -h 127.0.0.1 -u root -p本地连接测试再尝试从外部连接。遇到问题别慌按照“前端网络请求 - Nginx日志 - 后端应用日志 - 基础服务Redis/MySQL状态”这个链路一层层往下查总能找到根源。每一次解决问题的过程都是对系统理解加深的机会。部署完成只是开始后续的监控、备份、升级才是保障项目长期稳定运行的更重要的功课。希望这份详细的实战指南能帮你顺利跨出若依项目上线的第一步。
构建动态报价引擎:零代码平台应对制造业复杂报价挑战 1. 制造业报价的“老大难”:为什么传统方法总失灵? 干了这么多年制造业信息化,我见过太多企业被报价这件事折腾得够呛。销售部、财务部、生产部,甚至老板自己,都在这件事上栽过跟头。你可能会觉得,报价不就… 2026/7/4 2:31:36
HALCON 20.11实战:5步搞定工业图像异常检测(附完整代码) HALCON 20.11实战:5步搞定工业图像异常检测(附完整代码) 最近和几个在汽车零部件厂做质检的朋友聊天,他们最头疼的就是金属表面那些细微的划痕和印刷电路板上的微小缺陷。人工盯久了眼睛累,漏检率还高,老板… 2026/7/4 1:53:52
CarsimVeristand联合仿真进阶-蛇形路况模型配置详解 1. 从零开始:理解蛇形路况仿真的核心价值 大家好,我是老张,在汽车仿真这个圈子里摸爬滚打了十几年,从早期的简单动力学模型,到现在和硬件深度绑定的实时仿真,可以说踩过无数的坑。今天咱们不聊那些虚的&… 2026/5/17 9:03:46
OpenCV图像处理实战:缩放、翻转与拼接优化技巧 1. OpenCV图像处理基础:缩放、翻转与拼接实战指南在计算机视觉项目中,图像的基础处理往往是整个流程的第一步。作为从业十余年的开发者,我发现很多新手在处理图像缩放、翻转和拼接时容易陷入各种陷阱。本文将分享我在实际项目中总结的高效处理… 2026/7/4 2:33:35
昇腾AI与AscendCL图像分类应用开发实战指南 1. 昇腾AI与AscendCL基础认知在开始构建图像分类应用之前,我们需要先理解几个核心概念。昇腾AI处理器是华为自主研发的AI加速芯片,而AscendCL(Ascend Computing Language)则是其配套的C语言API库,相当于开发者与硬件之… 2026/7/4 2:33:34
OpenCV视频实时目标跟踪算法实战指南 1. 项目概述:OpenCV视频实时目标跟踪实战在计算机视觉领域,实时目标跟踪一直是个既基础又关键的技术点。我最近用PythonOpenCV完整实现了一套多算法跟踪系统,实测在普通办公笔记本上能达到30fps的处理速度。不同于静态图像处理,视… 2026/7/4 2:31:34
大数据处理的五大关键技术及其应用 数据处理旨在从海量数据中提炼价值,核心在于预测性分析,通过可视化、模式识别和挖掘帮助决策。主要环节包括采集、预处理、存储管理、分析挖掘及展现应用。 采集技术:获取结构化、半结构化和非结构化数据,需突破分布式爬取、高速解… 2026/7/4 2:27:33
OpenCV图像处理入门:从读取到显示的实战技巧 1. OpenCV图像处理基础入门计算机视觉作为人工智能的重要分支,正在深刻改变着我们与数字世界交互的方式。而OpenCV作为最流行的开源计算机视觉库,其图像读取与显示功能是每位开发者必须掌握的基础技能。不同于简单的图片查看器,OpenCV提供了工… 2026/7/4 2:27:33
强化学习参数设置与优化实战指南 1. 强化学习参数设置的核心挑战在强化学习系统开发过程中,参数配置往往是最容易被低估却又最关键的一环。我见过太多项目因为参数设置不当而导致训练失败,即使算法本身非常优秀。参数就像强化学习系统的"隐形调节器",直接影响着智能… 2026/7/4 2:25:33
STM32F745VG与MC6470 IMU的高性能姿态控制系统设计 1. MC6470与STM32F745VG的黄金组合解析在工业自动化和机器人控制领域,传感器与微控制器的协同工作能力直接决定了系统的响应速度和定位精度。MC6470作为一款6自由度惯性测量单元(6DOF IMU),与STM32F745VG这款基于ARM Cortex-M7内核的高性能微控制器组合&… 2026/7/4 0:00:28
Playwright自动化测试实战:从零搭建现代Web测试框架 1. 项目概述:为什么是 Playwright?如果你正在为现代 Web 应用的自动化测试头疼,尤其是面对那些充斥着动态加载、复杂交互的单页应用(SPA),那么 Playwright 的出现,很可能就是你的解药。我接触过… 2026/7/4 0:00:28
终极指南:如何将JSXBIN二进制文件转换为可读JSX源代码 终极指南:如何将JSXBIN二进制文件转换为可读JSX源代码 【免费下载链接】jsxbin-to-jsx-converter JSXBin to JSX Converter written in C# 项目地址: https://gitcode.com/gh_mirrors/js/jsxbin-to-jsx-converter 你是否曾经面对过Adobe产品的JSXBIN文件感到… 2026/7/4 0:02:28