为什么你的下一个桌面应用应该考虑 Electron?(深入浅出带你飞!)

Electron 小白介绍,你能看懂吗? 在最近的学习中,我接触了 Electron 这个前端框架,尽管学习进程断断续续,但我仍想分享一下我对它的了解。 阅读详情

还在为 Windows、macOS、Linux 分别开发桌面应用而头秃吗?(别不好意思承认,我都看到你掉落的头发了!)每次想到要维护三套完全不同的代码库,用不同的语言、不同的框架、不同的构建工具…… 是不是瞬间感觉生无可恋???🤯 别急,伙计们,今天咱们就来聊一个能让你重拾笑容的神器——Electron!

1. Electron 究竟是何方神圣?(简单说,就是魔法!)

想象一下,你用 HTML、CSS 和 JavaScript 写了一个超酷的网页应用。现在,你想让它脱离浏览器,像一个“正经”的本地软件一样,安装在用户的电脑上,拥有自己的窗口图标、系统菜单、通知权限,甚至还能读写本地文件…… 听起来像做梦?Electron 就是这个能让美梦成真的“造梦机”! 💫

官方说法:Electron 是一个由 GitHub 开发并维护的开源框架,用于使用 Web 技术(HTML, CSS, JavaScript) 构建跨平台的原生桌面应用程序。

划重点:

  • Web 技术: 前端开发者狂喜!你积累的 HTML/CSS/JS 技能直接能用,UI 渲染交给强大的 Chromium(没错,就是 Chrome 浏览器的核心引擎)。
  • 跨平台: 一套代码,编译打包成 Windows (.exe)、macOS (.app) 和 Linux (.AppImage, .deb, .rpm 等) 的应用程序。告别多平台开发的噩梦!(解放生产力!!!)
  • 原生桌面应用: 不是套壳浏览器!最终产物是一个独立的、拥有完整原生 GUI 体验(窗口、菜单、托盘图标、对话框、通知等)和系统资源访问能力的真·桌面程序。

简单粗暴理解:Electron = Chromium (负责界面) + Node.js (负责后端能力) + 原生API封装 (负责桌面集成)。这个组合拳,打得是真漂亮!

2. 为啥 Electron 能火遍大江南北?(优势大盘点,真香预警!)

它可不是浪得虚名!看看这些响当当的优势:

  • 🚀 开发效率爆炸式提升 (Dev Speed FTW!)

    • 前端技能复用: 百万 Web 开发者瞬间转化为桌面应用开发者,学习曲线平缓得像溜滑梯。
    • 热更新爽到飞起: 修改前端代码?保存即见效果,开发体验丝滑流畅。(告别 C++/C#/Java 那漫长的编译链接等待!)
    • 海量现成轮子: NPM 宇宙无敌的生态库直接搬过来用!UI 框架 (React, Vue, Angular, Svelte…)、工具库、构建工具 (Webpack, Vite…) 任君挑选。生态丰富到令人发指!
    • 跨平台一次搞定: 不再需要为不同平台雇佣不同技术栈的团队。一个前端(可能加点 Node)团队就能搞定所有桌面端。
  • 🌍 跨平台一致性拉满 (Consistency is King)

    • UI/UX 高度统一: 无论用户在哪个系统上跑,你的应用看起来、用起来都几乎一模一样。告别平台差异化造成的设计和体验割裂!(当然,你也可以针对平台微调 UI 风格)。
    • 功能一致性保障: 核心业务逻辑用 JS 写一套,在三大平台都能跑通,大大降低功能差异和维护成本。
  • 💪 能力超乎想象的强大 (Power to the Web!)

    • Node.js 加持: 这简直是开了外挂!Electron 的主进程(Main Process)运行着完整的 Node.js 环境。这意味着你的桌面应用可以:
      • 直接读写本地文件系统 (fs 模块)。
      • 访问网络资源 (http/https/net 模块)。
      • 调用系统原生 API (通过 electron 模块或 node-ffi 等)。
      • 执行命令行操作 (child_process 模块)。
      • 连接数据库 (各种 Node.js 数据库驱动)。
      • 集成硬件(如串口通信 serialport)等等… 几乎无所不能!
    • Chromium 的威力: 最新的 Web 标准(CSS3、HTML5、ESNext)、强大的 DevTools、GPU 加速渲染、WebGL、WebRTC… 浏览器能做的,你的 Electron 应用都能做,而且体验更原生!

看看这些业界标杆都在用 Electron:Visual Studio Code (微软的王牌编辑器)、Slack (团队协作扛把子)、Discord (游戏语音聊天顶流)、Figma (设计协作天花板)、Twitch (直播巨头)、Teams (微软办公全家桶)、WhatsApp Desktop… 这个名单长得能绕地球一圈!如果这些顶尖产品都信任它,足以证明其能力和潜力。

3. Electron 底层探秘:主进程 & 渲染进程 (核心概念,必懂!)

理解这对 CP (进程),是玩转 Electron 的关键!(超级重要!!!)

  • 主进程 (Main Process):

    • 老大角色: 整个应用的入口点 (main.js),有且只有一个!
    • 掌控全局: 负责创建和管理应用窗口 (BrowserWindow)、系统菜单、托盘图标、处理原生对话框、注册全局快捷键、管理应用程序生命周期(启动、退出、激活等)。
    • Node.js 主场: 拥有完全的 Node.js API 访问权限。它是连接操作系统和渲染进程的桥梁。
    • 重量级选手: 通常负责核心逻辑、数据持久化、IPC 通信中枢等“重活”。
  • 渲染进程 (Renderer Process):

    • 打工人角色: 每个打开的 BrowserWindow (或 WebView) 都运行在自己的渲染进程中。一个应用可以有多个渲染进程。
    • 专注界面: 负责加载和显示网页内容(你的 HTML/CSS/JS)。它就相当于一个独立的 Chromium 浏览器标签页。
    • 受限环境 (相对安全): 默认情况下,出于安全考虑,渲染进程不能直接访问 Node.js API 或操作系统原生 GUI 模块!它专注于 UI 展示和用户交互。
    • Web 技术天堂: DOM 操作、CSS 动画、前端框架… 统统在这里施展。

🚨 关键通信:IPC (Inter-Process Communication)

既然主进程和渲染进程是隔离的,它们怎么“说话”?靠 IPC (进程间通信)!

  • ipcMain (主进程注册监听器): 监听来自渲染进程的请求。
  • ipcRenderer (渲染进程发送消息): 向主进程发送消息并等待回复。
  • 流程通常是:渲染进程需要做一件“危险”或有特权的事情(比如保存文件、打开系统对话框)➡️ 通过 ipcRenderer.send 发送消息给主进程 ➡️ 主进程的 ipcMain.on 监听到消息 ➡️ 主进程利用 Node.js 权限执行操作(如 dialog.showOpenDialog, fs.writeFile)➡️ 主进程通过 event.reply 将结果或错误信息发送回发起请求的渲染进程。

举个栗子 🌰: 渲染进程有个“选择文件”按钮。点击后:

  1. 渲染进程:ipcRenderer.send('open-file-dialog')
  2. 主进程:监听 ipcMain.on('open-file-dialog', async (event) => { ... }
  3. 主进程:调用 dialog.showOpenDialog(...) (原生对话框弹出)
  4. 主进程:用户选择文件后,拿到文件路径 filePaths
  5. 主进程:event.reply('selected-file', filePaths[0])
  6. 渲染进程:监听 ipcRenderer.on('selected-file', (event, filePath) => { ... } 并处理文件路径。

理解了这个通信模型,Electron 的大门就算真正为你敞开了!

4. 开发初体验:手把手快速启动 (Let’s Get Hands Dirty!)

心动不如行动!来,咱们快速搭建一个 Hello World (带点 Electron 特色):

(1) 环境准备:

  • Node.js (建议 LTS 版本,>= v18.x) -> Node.js 官网 下载安装。
  • 一个趁手的编辑器 (VSCode 是首选,毕竟它自己就是 Electron 应用,体验绝佳!)。

(2) 创建项目 & 安装依赖:

mkdir my-electron-app && cd my-electron-app
npm init -y  # 快速创建 package.json
npm install --save-dev electron  # 安装 electron (作为开发依赖)

(3) 创建核心文件:

  • main.js (主进程入口):
const { app, BrowserWindow } = require('electron');

function createWindow() {
  // 创建浏览器窗口
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true, // 为了示例简单,启用 Node.js 集成 (注意安全风险!生产环境慎用或配合 contextIsolation/preload)
      contextIsolation: false // 同样为了示例简单 (生产环境务必开启!)
    }
  });

  // 加载本地 HTML 文件 (或一个 URL)
  win.loadFile('index.html');

  // 打开开发者工具 (可选)
  // win.webContents.openDevTools();
}

// Electron 初始化完成并准备好创建窗口时触发
app.whenReady().then(createWindow);

// 所有窗口关闭时退出应用 (macOS 除外)
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') { // darwin 即 macOS
    app.quit();
  }
});

// macOS 点击 Dock 图标重新创建窗口
app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow();
  }
});
  • index.html (渲染进程页面):
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Hello Electron!</title>
</head>
<body>
    <h1>🎉 你好,Electron 世界!</h1>
    <p>我们在使用 Electron 构建一个真正的桌面应用!酷毙了!</p>
    <button id="fsBtn">获取当前目录文件列表</button>
    <div id="fileList"></div>
    <script>
        // 注意:这里直接用了 fs (因为上面 main.js 配置了 nodeIntegration:true,实际生产不推荐!)
        const fs = require('fs');
        const path = require('path');
        document.getElementById('fsBtn').addEventListener('click', () => {
            fs.readdir('.', (err, files) => {
                if (err) {
                    document.getElementById('fileList').innerText = '出错了: ' + err.message;
                    return;
                }
                document.getElementById('fileList').innerHTML = '<ul>' +
                    files.map(file => `<li>${file}</li>`).join('') +
                    '</ul>';
            });
        });
    </script>
</body>
</html>

(4) 配置启动脚本 (package.json):

{
  "name": "my-electron-app",
  "version": "1.0.0",
  "description": "",
  "main": "main.js", // 主入口文件
  "scripts": {
    "start": "electron ." // 启动命令
  },
  "devDependencies": {
    "electron": "^29.0.0" // 版本号根据你安装的来
  }
}

(5) 运行!

npm start

Boom!你的第一个(虽然简陋但功能完整的)Electron 应用窗口就弹出来了!点击按钮还能列出当前目录的文件!看到 Node.js (fs.readdir) 在浏览器环境(其实是渲染进程)里直接操作文件系统,是不是感觉很魔幻?(再次提醒:这个示例为了简单牺牲了安全性,实际项目请务必使用 contextIsolation: true + preload 脚本的模式!)

5. 挑战与应对:关于 Electron 的那些“槽点” (清醒认识!)

天下没有完美的技术,Electron 也常被吐槽,主要集中在:

  • 😱 资源占用 (内存/磁盘):

    • 真相: 确实相对原生应用更高。因为它打包了整个 Chromium 和 Node.js 运行时。启动一个 Electron 应用 ≈ 启动一个 Chrome 标签页 + 一个 Node.js 进程。
    • 应对策略:
      • 优化!优化!再优化! 前端性能优化准则同样适用:懒加载、代码拆分、减少 DOM 节点、优化图片资源、避免内存泄漏。使用 BrowserWindow 的 webPreferences 选项(如禁用不需要的功能)。
      • 拥抱新技术: Vite 等现代构建工具能显著提升开发效率和优化产出。Electron Forge / Vite 集成非常棒!
      • 理性看待: 当今硬件资源普遍充裕。对于生产力工具(如 VSCode、Figma),用户更在意功能和流畅度,这些工具也证明了 Electron 完全能胜任。对于极简小工具,可能不是最佳选择。
  • 🔒 安全问题:

    • 真相: Web 技术的开放性带来了潜在风险。渲染进程默认不能访问 Node,但错误配置(如上面例子)会打开安全漏洞。
    • 应对策略 (超级重要!!!):
      • contextIsolation: true (必须开启!): 隔离渲染进程的 JavaScript 上下文和 Electron 内部逻辑/Node.js。这是安全基石!
      • nodeIntegration: false (推荐关闭): 渲染进程默认不集成 Node.js。需要通过 preload 脚本有限制地暴露 API。
      • 善用 sandbox 选项: 对可信度低的第三方内容启用沙盒。
      • 使用 preload 脚本: 这是安全暴露主进程能力给渲染进程的标准方式。preload 脚本运行在特权环境(既有 DOM API 又有部分 Node),但只能通过 contextBridge 向渲染进程暴露明确选择的、安全的 API。
      • 内容安全策略 (CSP): 设置严格的 CSP HTTP 头,限制加载资源的来源和脚本执行方式。
      • 及时更新: 保持 Electron 版本紧跟官方发布,获取安全修复。使用 electron-updater 实现自动更新。
      • 代码审计: 对加载的第三方脚本、依赖库进行安全检查。
  • 📦 打包体积:

    • 真相: 生成的安装包确实比较大(小应用可能也要几十 MB,大应用上百 MB)。
    • 应对策略:
      • 使用 asar 归档: Electron 默认将应用代码打包成 app.asar 文件,优化加载并隐藏源码。
      • 选择合适的打包工具: electron-builder 或 electron-forge 功能强大,支持各种平台格式、自动更新、代码签名等。它们会智能处理依赖和体积优化。
      • 依赖瘦身: 审视 node_modules,只打包真正需要的依赖项 (dependencies vs devDependencies)。使用 electron-builder 的 files/extraFiles 配置精确控制。
      • 压缩优化: 打包工具通常内置压缩。
      • 考虑替代方案: 对体积极端敏感的小工具,可能 Tauri (Rust + WebView) 或其他轻量方案更适合。但需权衡开发效率和生态。

6. 现代 Electron 开发最佳姿势 (站在巨人肩膀上!)

别从零开始折腾脚手架!用这些强大的工具链:

  • ⚡ Electron Forge: 官方维护的“全家桶”式工具链!集成了:

    • 项目脚手架 (create-electron-app)
    • 打包 (electron-forge make)
    • 发布 (electron-forge publish)
    • 开箱即用的 Webpack / Vite 集成
    • 插件系统
    • 强推! 极大简化配置和构建流程,新手老手都省心。npx create-electron-app@latest my-app --template=webpack (或 --template=vite)
  • 🚀 Vite + Electron: 追求极致开发体验 (HMR 快如闪电)!通常搭配 vite-plugin-electron 等插件。npm create vite@latest electron-vite-app -- --template react-ts + 配置插件。开发热更新速度让你感动到哭!

  • 📦 electron-builder: 专注于强大灵活的打包和发布。功能极其丰富,支持几乎所有平台格式(安装包、可执行文件、AppX、DMG、PKG、AppImage、Snap…)、代码签名、自动更新、差分更新等。常与 Forge 或独立使用。

7. 我的 Electron 实战心得 (纯干货分享!)

做了几个 Electron 项目,踩过坑也尝到甜头,分享点肺腑之言:

  • 架构清晰是王道: 主进程干什么?渲染进程干什么?哪些逻辑用 IPC 通信?哪些数据该放哪?前期规划好,后期烦恼少。强烈建议模块化设计。
  • 安全性时刻挂心上: 别偷懒!contextIsolation: true + preload + contextBridge 是黄金组合。接手老项目第一件事就是检查这个配置!(血的教训啊!)
  • 性能优化要趁早: 不要等到应用卡成 PPT 才动手。定期用 Chromium DevTools 的 Performance/Memory 面板分析渲染进程,用 Node.js 工具(如 node-inspector / Chrome DevTools for Node)分析主进程。懒加载、防抖节流用起来!
  • IPC 通信别滥用: 它是强大的,但也是有开销的。频繁通信会影响性能。设计好通信协议,批量传输数据,避免不必要的请求。考虑使用 ipcRenderer.invoke / ipcMain.handle 处理异步请求更优雅。
  • 拥抱社区: Electron 社区超级活跃!遇到问题,官方文档、Git
Electron----桌面应用开发框架 Electron 是一个开源框架,旨在使用 Web 技术(如 HTML、CSS 和 JavaScript)开发跨平台的桌面应用。它结合了 Chromium 和 Node.js,使开发者能够构建具有原生应用体验的桌面应用程序,同时使用熟悉的 Web 开发工具和技术。它的灵活性、强大的功能和良好的社区支持使得它成为构建现代桌面应用的热门选择。:负责管理应用的生命周期、创建和管理窗口以及处理系统级别的 API 请求。:提供了简化的工具链来创建、开发、打包和发布 Electron 应用。类来创建和管理应用窗口。 阅读详情

相关推荐

深入理解Electron一Electron架构介绍

Electron和众多类似的产品目标非常简单,他们将chromium(这里不同的框架选择不同,比如Tauri选择了原生的WebView,而WebView2选择了Edge内核)和Node.js(这里不同框架采取策略也不同,比如Webview2不提供默认的运行时,而Tauri选择了Rust等等)利用C++等原生语言集成起来,提供了一整套基于Web的运行环境,并提供了与底层OS交互的便捷API,目的就是为了让大家使用Web的技术栈去开发客户端原生应用,从而实现不同操作系统之间的跨平台开发。

weixin_43188769的博客 2470

Electron详解(一):基本介绍

Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源框架。Electron提供了丰富的本地(操作系统)API,使你能够使用纯JavaScript来创建桌面应用程序。Electron通过集成浏览器内核,使用Web技术来实现不同平台下的渲染,并结合了 Chromium、Node.js 和用于调用系统本地功能的Native API 三大板块。

Java+GO+JS全栈工程师-鹤冲天的博客:编程辅导~商务合作~技术交流 1万+

桌面应用之electron开发

1. Electron简介       引自Electron官方的说明[1]:Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。 Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。Electron于2013年作为构建Github...

tornyLin的博客 5674

(1/7)Electron教程(一)什么是 Electron,由来、适用场景 和 Electron 的环境搭建(1/7)

最近自己有个小的需求,是做一个能编辑本地特定文本的工具,需要跨平台, Windows 和 macOS,这样,如果用原生开发的话,Windows 就要用c#macOS 就要用swift,学习成本高,并且学完用处也不是很大。我本身是前端开发的,发现了这个electron能满足我的需求,跨平台运行,内部是 js 驱动的,简直就是如鱼得水。顺便把学习的经历写出来,分享需要的人,我会按标题序号渐进式地编写内容。electron。...

学习笔记 2万+

使用electron-vite搭建一个web桌面应用

最近有个业务需要使用到electron这个技术进行搭建web的桌面应用,本人在试坑的路上已经不知道掉了多少坑了,我先开始使用两个框架一起搭的,刚开始使用vite创建了一个vue3的项目然后再安装electron进行综合构建electron-vue项目,但是官方提供了一个electron-vite的脚手架用于搭建,而且是使用vite搭建的,不用之前的两次启动,一键启动,而且热更新,下面是两种搭建方式的区别。

qq_46516788的博客 1784

Electron PC桌面应用exe开发

基于 Electron、Qt、WPF 和 WinForms 开发的桌面软件Q的特点和适用场景。Electron 适合跨平台的 Web 技术栈应用程序,Qt适用于高性能和可扩展性要求的应用程序,WPE 适用于复杂的 Windows 平台应用程序,而 Winfomms 适合快速开发简单界面的应用程序。开发者可以根据自己的需求和技术栈选择合适的框架,以提高开发效率和应用程序质量。

qq_36158551的博客 1638

从零开始:用 Electron 构建你的第一个桌面应用

在学习Electron for HarmonyOS 开发之前一定要去了解什么是Electron,Electron 是一个强大的框架,它让你可以用熟悉的 Web 技术(HTML、CSS、JavaScript)开发跨平台的桌面应用程序。VS Code、Slack、Discord 等知名软件都是基于 Electron 构建的。本文将带你 **从 0 到 1** 创建一个最简单的 Electron 应用。

欢迎大家一起讨论交流 2103

electron深入浅出

electron 简介 electron是由Github开发,是一个用Html、css、JavaScript来构建桌面应用程序的开源库,可以打包为Mac、Windows、Linux系统下的应用。 electron是一个运行时环境,包含Node和Chromium,可以理解成把web应用运行在node环境中 结构 electron主要分为主进程和渲染进程,关系如下图 electron运行packag...

Leon的博客 3万+

别再为GEE注册发愁了!用谷歌Cloud Project,5分钟搞定谷歌地球引擎账户(保姆级图文)

本文提供2024最新版谷歌地球引擎(GEE)账户注册的保姆级教程,通过谷歌Cloud Project快速完成注册,5分钟极速通关。详细解析注册前的准备、分步图解流程、常见误区及解决方案,帮助用户避开90%的注册陷阱,直达GEE核心功能区。

weixin_42557830的博客 199

SVG绘制圆环进度条

在我们的大屏可视化项目中,经常会用到各种各样的图表。与传统的表格展示、枯燥的文字阐述相比,图表展示则使用户看起来更加直观、数据的展示则更加一目了然。本文基于svg绘图技术结合前端技术栈vue,以工作中常用的环形进度条为例,简单阐述一下绘制进度条的一些思路。............

qq_40289557的博客 8358

Electron入门教程1 —— 编写第一个桌面应用程序

最近临时起意,想开发Windows桌面应用程序,但是我们肯定都先会想到微软的C#。但是我又不想花时间去学习C#,而且就算学了C#,还是很难快速开发出好看的Windows桌面应用。所以此时我就想,既然移动app都能用vue来写,那Windows的桌面应用程序是不是也可以用Vue等web前端技术来开发呢?还真可以,那就是Electron这个框架。首先声明,我自己也在学习Electron这个框架,所以就有了这个教程。 ...

weixin_50216991的博客 1万+

SQL Server 2025在Windows 11上的安装避坑指南

SQL Server 是微软主流关系型数据库管理系统,其安装与Windows操作系统深度耦合;Windows 11作为新一代桌面平台,强化了基于虚拟化的安全(HVCI)、驱动签名强制策略(WDAC)及内核隔离机制,导致传统数据库部署流程失效。理解二者底层交互原理,是解决服务启动失败、配置管理器无法打开、远程连接被拒等高频问题的技术前提。本文聚焦SQL Server 2025与Windows 11的兼容性挑战,覆盖系统预配置、安装节点诊断、防火墙与服务权限调优等工程实践环节,适用于高校教学、电赛备赛、中小企业

weixin_28741413的博客 315

2021了,你还不会用 Electron 写一个桌面应用?

正如 Electron 官方所说“如果你可以建一个网站,你就可以建一个桌面应用程序”。‍作为一个跨平台的桌面应用开发框架,Electron 的迷人之处在于,它是建立在 Chromium...

Yvette Lau的专栏 2384

2024年09月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析

小杨购物 【题目描述】 小杨有n元钱用于购物。商品A的单价是a元,商品B的单价是b元。 小杨想购买相同数量的商品A和商品B。 默认小猫角色和白色背景,编写程序请你帮小杨计算出他最多能够购买多少个商品A和商品B。 【输入描述】 新建变量“n”用于存储小杨购物的金额。 新建变量“a”用于存储商品A的价格。 新建变量“b”用于存储商品B的价格。 1≤n,a,b≤100000 如下图所示: 图片 【输出描述】 新建变量“result”用于存储小杨最多购买商品A和商品B的个数。 如下图所示:

人生就是一个不断学习的过程 494

Loki 分布式日志中心服务

分布式日志中心 Loki + Promtail + Grafana

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 2351

Electron 深入浅出

Electron是一个基于Web技术(HTML/CSS/JS)的跨平台桌面应用开发框架,结合Chromium和Node.js实现。其核心是多进程架构(Main/Renderer进程+Preload脚本),通过IPC通信实现进程交互。虽然开发门槛低且生态丰富,但也存在体积大、性能消耗高和安全风险等缺点。安全实践需禁用NodeIntegration、开启ContextIsolation并使用Preload桥接。性能优化包括内存管理、打包瘦身和ASAR打包。常见问题涉及XSS防护、IPC回调管理和跨平台兼容等,需

青蛙king的博客 1155

【SpringBoot笔记44】SpringBoot多数据源配置(方式一:配置多个mapper扫描不同的包路径实现多数据源配置)

在SpringBoot应用开发中,一般情况下,都是只会配置一个数据源信息,之后整个工程都是对当前数据源进行增删改查的操作。但是,在实际开发里面,也有可能会遇到多数据源的情况,例如:当前工程中除了需要访问自己应用的数据库,还需要直接连接第三方系统的数据库进行业务处理,这种情况下,就需要进行多数据源的配置。SpringBoot考虑到了这一点,所以它是支持多数据源的配置的,下面介绍一下如何配置多数据源。

✅ Java 开发工程师 1116

开发桌面应用,自然用 Electron !

01Node.js,一个让 JavaScript 从丑小鸭变成白天鹅的框架可能很多读者会感到奇怪,本来是说 Electron,为什么一开始要提到 Node.js 和 Ja...

形势所逼,不进则退 8855

第4章 部署负载均衡 Keepalived + HAProxy

本章在所有 Master 节点部署 Keepalived + HAProxy,为 kube-apiserver 提供高可用入口。Keepalived 实现 VIP(192.168.3.59)漂移,HAProxy 轮询转发请求至三个 Master 的 6443 端口(监听 6444 避免冲突)。健康检查脚本连续 5 次失败则停止 Keepalived,触发 VIP 自动切换。本章还包含配置详解、日常运维和问题排查。

幸福街--linux技术分享 120

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【Electron-Vue】搭建Electron-Vue前端桌面应用

最近准备写一个前端桌面应用,了解到了一个新的框架——Electron,它是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。接下来,我们就来搭建一个基于vue的electron应用吧。

aDiaoYa_的博客 4953

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

使用 electron-vue 构建你的桌面应用

什么是 electron官网里这么说:Electron提供了一个Nodejs的运行时,专注于构建桌面应用,同时使用web页面来作为应用的GUI,你可以将其看作是一个由JavaScript控制的迷你版的Chromium浏览器。翻译一下:它是一个运行时,可以像 node 一样这样执行:electron app.js;也是一个使用 html + css + javascript 构建跨平台原生桌面应用的框

Hello world! 5万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

vite+electron构建一个VUE3桌面应用

使用vite+electron创建一个vue3项目

qq_45787691的博客 6400

Electron桌面应用初探

打造你的第一个 Electron 应用 Electron 可以让你使用纯 JavaScript 调用丰富的原生(操作系统) APIs 来创造桌面应用。 你可以把它看作一个 Node. js 的变体,它专注于桌面应用而不是 Web 服务器端。 这不意味着 Electron 是某个图形用户界面(GUI)库的 JavaScript 版本。 相反,Electron 使用 web 页面作为它的 GUI,所以你能把它看作成一个被 JavaScript 控制的,精简版的 Chromium 浏览器。 从开发的角度来看, E

lxmuyu的专栏 1217

React + Electron 搭建一个桌面应用

当你冲这个标题点进来的时候,我猜你一定知道 React 是什么,更多详情请戳这里,就不介绍React了,一个神般存在的前端框架。另外,浏览器和移动端横行的时代,为什么还需要桌面应用?我就不解释了,反正优点很多,做为技术多学一点总没错。 Electron 简单介绍 是什么? 官网是这么介绍的: Electron is an open source library developed by GitHu...

weixin_45566319的博客 1162

用Electron将web网页程序包装成桌面应用

用Electron将web网页程序包装成桌面应用 前提 web 端页面,真的太容易一不小心关掉了,或者,标签页比较多的时候不太容易找到,所以决定快速包装一个 认识electron electron快速入门 搭建electron项目 第一步 创建项目,下载依赖 mkdir my-electron-app && cd my-electron-app npm init npm install --save-dev electron (devDependencies:只在开发环境中使用

知识点沉淀包括不限于前端 7889
上一篇: Prettier:拯救代码审美的“霸道总裁”,真香了!!!
下一篇: Apache Airflow 揭秘:用代码编排你的任务流水线!(告别脚本地狱)
普通网友
博客等级 码龄1年 17粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值