达梦数据库(DM)与Spring Boot集成:Flyway和Flowable的国产化实践
1. 为什么我们需要关注达梦数据库的国产化实践最近几年我在参与一些对数据安全有较高要求的项目时发现一个明显的趋势越来越多的团队开始考虑将核心业务从传统的国外数据库迁移到国产数据库上。这不仅仅是技术选型的变化背后往往涉及到合规要求、供应链安全以及长远的技术自主可控。在众多国产数据库中达梦数据库DM凭借其良好的兼容性和企业级特性成为了很多团队的首选。但是当我们真正开始动手迁移时问题就来了。一个典型的 Spring Boot 项目早已不是简单的 CRUD。我们依赖了大量优秀的开源生态组件比如用Flyway来管理数据库版本变更用Flowable来处理复杂的业务流程。这些组件在 MySQL、Oracle 上运行得风生水起但切换到 DM 数据库后还能不能“一键启动”答案往往是否定的。我踩过不少坑比如 Flyway 执行 SQL 脚本时报语法错误Flowable 引擎启动时找不到对应的表结构这些兼容性问题会让整个迁移计划卡壳。所以今天我想和你分享的就是如何在一个真实的 Spring Boot 项目中平滑地集成达梦数据库并且让 Flyway 和 Flowable 这两个“得力干将”也能完美适配。这不是一个简单的“换驱动”操作而是一套涵盖驱动配置、SQL 方言适配、版本管理脚本改造、工作流引擎初始化的全流程实践。我会把我在实际项目中验证过的步骤、遇到的典型问题以及解决方案毫无保留地拆解给你看。无论你是正在评估国产化替代的技术负责人还是需要具体落地的一线开发者相信这篇内容都能给你带来实实在在的帮助。2. 项目基础环境搭建与驱动配置万事开头难我们先从最基础的环境搭建开始。这里假设你已经有了一个 Spring Boot 项目骨架我们接下来要做的就是引入正确的依赖并配置好数据库连接。2.1 引入核心依赖选对版本是关键在pom.xml中我们需要添加达梦数据库的 JDBC 驱动。这里有个小细节要注意达梦官方提供了不同的驱动包对于 Spring Boot 项目我推荐使用DmJdbcDriver18它兼容 JDK 8 及以上版本也是目前最常用的。dependency groupIdcom.dameng/groupId artifactIdDmJdbcDriver18/artifactId version8.1.3.62/version !-- 请务必使用项目所需的正式版本 -- /dependency版本号一定要核对清楚我曾经因为用了测试版本的驱动遇到了连接池的诡异超时问题排查了大半天。建议从达梦官方或公司内部仓库获取稳定的发布版本。接下来是 Flyway 和 Flowable 的依赖。这里版本兼容性尤为重要我直接给出一个经过验证的组合基于 Spring Boot 2.7.xdependency groupIdorg.flywaydb/groupId artifactIdflyway-core/artifactId /dependency dependency groupIdorg.flowable/groupId artifactIdflowable-spring-boot-starter/artifactId version6.8.1/version !-- 选择 6.8.1 或 7.x策略不同 -- /dependency为什么特别指出 Flowable 的版本因为 Flowable 6.8.1 和 7.x 版本对于数据库初始化的策略有差异这个我们后面在 Flowable 配置部分会详细讲选错了会导致表创建失败。2.2 配置数据库连接与连接池依赖加好了接下来在application.yml里配置数据源。这里和配 MySQL 大同小异但有几个参数是达梦特有的不注意就会连不上。spring: datasource: driver-class-name: dm.jdbc.driver.DmDriver url: jdbc:dm://localhost:5236/DAMENG?schema你的模式名zeroDateTimeBehaviorconvertToNull username: SYSDBA password: SYSDBA flyway: enabled: true baseline-on-migrate: true locations: classpath:db/migration # 关键指定达梦的SQL方言告诉Flyway别按MySQL的语法检查 sql-migration-prefix: V sql-migration-separator: __ sql-migration-suffixes: .sql我来解释几个容易出错的点URL 中的schema达梦数据库的模式概念类似于其他数据库的“数据库名”。如果你在创建用户时指定了默认模式这里可以省略。但更常见的做法是显式指定避免对象找不到。zeroDateTimeBehavior参数这个参数在处理日期时间时很有用建议加上。Flyway 的baseline-on-migrate设置为true后如果数据库中不存在flyway_schema_history表Flyway 的元数据表Flyway 会自动创建它并基于现有版本进行基线迁移。这对于迁移已有项目非常友好。仅仅这样配置你可能在启动时还是会遇到 Flyway 报错提示“不支持数据库类型”。这是因为 Flyway 默认没有内置对达梦的支持。别急这不是大问题我们有两种主流解决方案接下来就详细说说。3. 让 Flyway 在达梦数据库上顺畅运行Flyway 的核心工作是按顺序执行db/migration目录下的 SQL 脚本。要让它在达梦上工作我们需要解决两个核心问题驱动兼容性和SQL 语法兼容性。3.1 方案一使用开源扩展插件推荐这是最省心、最接近原生体验的方法。社区已经有开发者封装了针对国产数据库的 Flyway 扩展包比如我多次使用的db-migration项目。你只需要引入对应的依赖Flyway 就能自动识别达梦数据库。在你的pom.xml中添加dependency groupIdio.github.mengweijin/groupId artifactIddb-migration-flyway-dm/artifactId version2.1.0/version !-- 版本请参考项目最新发布 -- /dependency引入这个依赖后无需任何额外配置Spring Boot 启动时Flyway 就能正确识别dm数据库类型并创建正确的连接来执行迁移脚本。这个插件背后做的事情主要是注册了达梦数据库的特定处理器处理了元数据表的创建和查询方式。我实测下来非常稳定大大减少了适配工作量。3.2 方案二手动处理 SQL 脚本语法如果你不能或不想引入第三方依赖那就需要手动确保你的 SQL 脚本是符合达梦语法。这意味着你需要审查和修改现有的迁移脚本。达梦兼容 Oracle 语法但并非 100%。以下是一些常见的不兼容点和修改示例自增列定义MySQL:id BIGINT AUTO_INCREMENT PRIMARY KEY达梦:id BIGINT IDENTITY(1,1) PRIMARY KEY注释语法MySQL 单行注释-- 注释达梦也支持--但多行注释/* ... */更通用。注意达梦的 SQL 工具中以--开头的注释必须单独一行否则可能解析错误。ON UPDATE CURRENT_TIMESTAMP这个 MySQL 的便捷特性在达梦中没有。你需要通过触发器来实现类似功能或者在业务代码中维护更新时间。ENGINEInnoDB等存储引擎声明达梦没有这个概念直接删除即可。一个实际的脚本改造例子假设你有一个为 MySQL 创建的 Flyway 脚本V1__create_user_table.sqlCREATE TABLE t_user ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT 主键ID, username VARCHAR(50) NOT NULL UNIQUE COMMENT 用户名, created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间 ) ENGINEInnoDB COMMENT用户表;为了适配达梦你需要修改为CREATE TABLE t_user ( id BIGINT IDENTITY(1,1) PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ); COMMENT ON TABLE t_user IS 用户表; COMMENT ON COLUMN t_user.id IS 主键ID; COMMENT ON COLUMN t_user.username IS 用户名; COMMENT ON COLUMN t_user.created_at IS 创建时间; COMMENT ON COLUMN t_user.updated_at IS 更新时间;可以看到改动点包括自增语法、移除存储引擎声明、将列注释改为独立的COMMENT ON语句。对于updated_at的自动更新则需要额外创建一个触发器这会让脚本变得复杂。因此在实际项目中我强烈建议将“字段更新”的逻辑放在应用层而不是数据库层这样兼容性更好。3.3 Flyway 配置进阶与踩坑记录即使解决了基本运行问题还有一些细节配置需要注意这些是我在多次实践中总结出来的。关闭 Flyway 的占位符替换校验如果你的 SQL 脚本里包含达梦特有的语法或函数如SYSDATEFlyway 可能会误认为是未定义的占位符而报错。可以通过配置关闭spring: flyway: placeholder-replacement: false处理大小写敏感问题达梦数据库默认是大小写不敏感的但对象名表名、列名在创建时如果被双引号括起来就会区分大小写。Flyway 生成的flyway_schema_history表名默认是小写。为了保持一致建议在 JDBC URL 中强制指定一个大小写策略或者在所有 SQL 脚本中统一使用大写或小写不加双引号。迁移失败的回滚Flyway 本身不支持自动回滚这是设计哲学。一旦某个版本的脚本执行失败数据库会停留在“失败”状态。你需要手动修复 SQL 脚本中的错误然后根据 Flyway 的规则进行修复repair或清理clean慎用会清空所有表。对于生产环境务必先在测试库充分验证。4. 集成 Flowable 工作流引擎的完整策略Flowable 是一个功能强大的 BPMN 工作流引擎它启动时需要在自己的数据库里创建一大堆表大概60多张来存储流程定义、实例、任务等信息。让 Flowable 在达梦上跑起来是国产化实践中的另一个重头戏。4.1 理解 Flowable 的数据库初始化机制Flowable Spring Boot Starter 在启动时会自动检查数据库中的表是否存在。其行为主要由flowable.spring.database-schema-update这个配置控制false(默认)不自动创建或更新表。你需要手动执行建表脚本。true如果表不存在则自动创建。create-drop启动时创建关闭时删除仅用于测试。我们的目标是让 Flowable 能够“自动创建”出适配达梦的表结构。这里的关键在于Flowable 需要找到匹配当前数据库类型的建表脚本。4.2 为达梦提供正确的建表脚本Flowable 官方没有提供达梦的建表脚本。但是由于达梦兼容 Oracle 语法一个广泛使用的方案是让 Flowable 使用 Oracle 的建表脚本。对于Flowable 6.8.1版本配置相对直接flowable: spring: database-schema-update: true # 关键配置指定数据库类型为 oracle database-type: oracle这样配置后Flowable 会从自己的 jar 包里寻找org/flowable/db/create/flowable.oracle.create.engine.sql等脚本并尝试在达梦上执行。我实测过大部分 DDL 语句都能成功因为基础语法相通。但可能会遇到一些 Oracle 特有函数或语法如SEQUENCE的细微差别报错需要手动调整。对于Flowable 7.x及以上版本情况有些变化。新版本使用了更精细化的数据库初始化策略有时仅仅指定database-type: oracle可能不够。更可靠的做法是我们自己提供一套适配过的 SQL 脚本。获取脚本从 Flowable 官方发布包或 GitHub 仓库中找到flowable-oracle-create-7.1.0.sql以你的版本为准。脚本适配仔细检查脚本将其中不兼容达梦的语法进行修改。例如将NUMBER改为DECIMAL或NUMERIC检查约束命名规则等。这是一个细致活建议建立一个“达梦适配脚本库”。执行脚本你有两种方式执行适配后的脚本交给 Flyway/Liquibase管理这是我最推荐的方式。将适配后的 Flowable 建表脚本作为 Flyway 的一个基线版本例如V1__flowable_init.sql放入迁移目录。这样数据库版本就和应用版本一起被 Flyway 管理了。在 Flowable 配置中指定自定义脚本路径较复杂不展开。4.3 配置详解与常见问题排查完成了脚本适配我们来看看完整的 Flowable 配置示例以及如何排查启动问题。flowable: # 关闭异步执行器用于简单测试生产环境需配置 async-executor-activate: false # 允许流程定义XML中的BPMN图自动部署 check-process-definitions: true spring: database-schema-update: true database-type: oracle # 邮件服务器配置如果流程涉及邮件任务 mail-server: host: smtp.xxx.com port: 465 ssl: true username: your-email password: your-password启动应用时请务必关注日志。如果 Flowable 表创建失败通常会抛出明显的 SQL 异常。你需要查看错误日志找到具体的 SQL 语句和错误信息。定位问题脚本根据错误信息去 Flowable 的建表脚本中找到对应的行。分析并修改判断是语法问题还是对象已存在问题。常见的如主键约束名重复达梦要求全局唯一、字段长度定义不一致等。手动执行与验证将修正后的 SQL 在达梦管理工具中手动执行验证确保无误后再更新到 Flyway 脚本中。还有一个我遇到过的“坑”Flowable 的ACT_GE_PROPERTY表中会插入一条schema.version的记录。如果后续你升级 Flowable 版本且新版本的表结构有变化database-schema-update: true可能会尝试执行升级脚本。这时如果脚本有语法兼容问题就会失败。因此对于生产环境建议在首次初始化后将database-schema-update改为false后续版本升级通过受控的 Flyway 迁移脚本进行。5. 实战构建一个完整的示例工程光说不练假把式我们用一个简单的示例把上面的配置串起来。假设我们要构建一个包含用户管理和请假流程审批的微服务。5.1 项目结构与核心代码项目目录结构大致如下src/main/java/ ├── com.example.demo │ ├── entity/ # 实体类 │ ├── repository/ # 数据层 │ ├── service/ # 业务层 │ └── DemoApplication.java └── resources/ ├── application.yml # 配置文件 ├── db/ │ └── migration/ # Flyway SQL脚本 │ ├── V1__init_schema.sql │ └── V2__add_flowable_tables.sql └── processes/ # Flowable BPMN流程定义文件 └── leave-approval.bpmn20.xmlapplication.yml核心配置汇总spring: datasource: driver-class-name: dm.jdbc.driver.DmDriver url: jdbc:dm://192.168.1.100:5236/DAMENG?schemaDEMOzeroDateTimeBehaviorconvertToNull username: DEMO_USER password: your_strong_password hikari: connection-test-query: SELECT 1 FROM DUAL flyway: enabled: true baseline-on-migrate: true locations: classpath:db/migration placeholder-replacement: false flowable: async-executor-activate: false check-process-definitions: true spring: database-schema-update: false # 首次启动后改为false由Flyway控制V1__init_schema.sql(业务表初始化)-- 创建用户表 CREATE TABLE t_user ( id BIGINT IDENTITY(1,1) PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, name NVARCHAR(100), department NVARCHAR(200), created_time DATETIME DEFAULT CURRENT_TIMESTAMP ); COMMENT ON TABLE t_user IS 用户表; COMMENT ON COLUMN t_user.username IS 登录账号; COMMENT ON COLUMN t_user.name IS 用户姓名; -- 创建请假单表 CREATE TABLE t_leave_form ( id BIGINT IDENTITY(1,1) PRIMARY KEY, user_id BIGINT NOT NULL, leave_type NVARCHAR(50), start_time DATETIME, end_time DATETIME, reason NVARCHAR(1000), status NVARCHAR(20) DEFAULT PENDING, process_instance_id NVARCHAR(64) -- 用于关联Flowable流程实例ID ); COMMENT ON TABLE t_leave_form IS 请假申请表;V2__add_flowable_tables.sql(Flowable表初始化)这个文件的内容就是你从 Flowable 官方 Oracle 脚本适配而来的完整 SQL。由于内容很长这里不完整列出。你需要确保这个脚本能在达梦上一次性执行成功。5.2 流程定义与简单服务在resources/processes/leave-approval.bpmn20.xml中定义一个简单的请假审批流程用户申请 - 经理审批。然后在 Spring Boot 应用中你可以通过RuntimeService、TaskService等 Flowable 服务 API 来启动流程、查询任务、完成任务。Service public class LeaveService { Autowired private RuntimeService runtimeService; Autowired private TaskService taskService; Autowired private LeaveFormRepository leaveFormRepository; public String startLeaveProcess(Long formId, String starterUserId) { LeaveForm form leaveFormRepository.findById(formId).orElseThrow(); // 启动流程实例 ProcessInstance instance runtimeService.startProcessInstanceByKey( leaveApproval, businessKey, variables ); // 更新业务表关联流程实例ID form.setProcessInstanceId(instance.getId()); leaveFormRepository.save(form); return instance.getId(); } // 更多方法查询待办任务、完成任务等... }启动这个 Spring Boot 应用如果一切配置正确你会看到日志中 Flyway 依次执行V1__和V2__脚本成功创建所有表。随后 Flowable 引擎初始化成功并加载leave-approval流程定义。至此一个基于达梦数据库、集成 Flyway 和 Flowable 的 Spring Boot 应用就成功运行起来了。6. 生产环境部署的注意事项与优化建议把 demo 跑起来只是第一步要真正用到生产环境还有不少细节需要考虑。这些是我在真实项目交付中积累的经验。性能与稳定性调优连接池配置默认的 HikariCP 配置可能不适合高并发场景。根据达梦数据库服务器的配置和应用负载调整maximum-pool-size、connection-timeout、idle-timeout等参数。建议在压测环境中找到最优值。Flowable 异步执行器在生产环境务必启用 Flowable 的异步执行器flowable.async-executor-activate: true并将async-executor相关参数如核心线程数、队列大小配置合理。这能避免定时任务、异步任务阻塞主线程。达梦数据库参数与 DBA 协作优化达梦数据库的关键参数如内存设置、会话数、锁超时时间等。特别是 Flowable 会频繁操作数据库确保数据库有足够的资源和处理能力。版本管理与回滚方案Flyway 脚本的严谨性每个版本的 SQL 脚本都必须经过严格测试最好能包含“可重复执行的脚本”即执行多次结果一致。对于数据变更DML要格外小心必须有明确的回滚方案或补偿脚本。Flowable 版本升级升级 Flowable 版本时其表结构可能会变。切勿直接依赖database-schema-update: true进行自动升级。正确的做法是从新版本 Flowable 中获取官方的数据库升级脚本如flowable.oracle.upgradestep.6.7.2.to.6.8.0.engine.sql将其适配到达梦语法然后通过 Flyway 作为一个新的迁移版本如V3__upgrade_flowable_6.8.0_to_7.1.0.sql来执行。这个过程必须在测试环境充分验证。监控与运维监控 Flyway 状态可以通过/actuator/flyway端点需引入 actuator查看迁移历史和状态。监控 Flowable 引擎Flowable 提供了 REST API 和管理界面可以监控流程实例、任务数量、作业执行情况等。确保这些管理功能在国产化环境下也能正常使用。日志记录为 Flyway 和 Flowable 设置独立的日志级别如 DEBUG便于在出现问题时排查 SQL 执行细节和引擎内部状态。国产化迁移不是一蹴而就的它更像是一个细致的“适配”过程。从最初的驱动兼容到 SQL 脚本的语法调整再到 Flowable 这类复杂组件的初始化每一步都需要耐心和严谨的测试。我分享的这些步骤和方案都是在实际项目中验证过的希望能为你扫清一些障碍。记住最关键的是建立一套可靠的测试流程任何数据库脚本和配置变更都必须先在集成测试环境中跑通才能走向生产。当你看到应用在达梦数据库上稳定运行Flyway 有序管理着表结构变迁Flowable 驱动着业务流程流转时那种成就感会让你觉得所有的折腾都是值得的。如果在实践过程中遇到新的问题不妨多看看达梦的官方文档和社区很多兼容性问题都有前人遇到过并分享了解决方案。

相关新闻

实战教程:使用Huggingface CLI和Python脚本高效下载大模型到指定目录

实战教程:使用Huggingface CLI和Python脚本高效下载大模型到指定目录

实战指南:告别默认缓存,将Hugging Face大模型精准下载到你的指定目录 每次启动一个新的AI项目,最让人头疼的环节之一,可能就是等待那个动辄几十GB的模型文件从云端缓缓流入你的硬盘。更令人沮丧的是,你精心规划了项目目…

2026/5/17 8:36:48 阅读更多 →
vLLM 部署大模型常见问题与优化策略

vLLM 部署大模型常见问题与优化策略

1. 从零开始:vLLM部署大模型的准备工作与常见“坑点” 最近在项目里用vLLM部署了几个不同规格的大模型,从70B的“巨无霸”到带视觉、音频的多模态模型,几乎把能踩的坑都踩了一遍。我发现很多朋友在初次接触vLLM时,最容易在环境准备…

2026/7/4 2:02:18 阅读更多 →
TensorFlow 2.15实战部署:5个问题解析与一键云环境体验

TensorFlow 2.15实战部署:5个问题解析与一键云环境体验

TensorFlow 2.15实战部署:5个问题解析与一键云环境体验 你是不是已经厌倦了在本地电脑上反复折腾TensorFlow环境?Python版本冲突、CUDA驱动报错、依赖包缺失……这些看似简单的问题,往往能消耗掉你半天甚至一天的时间。对于想快速上手实践深…

2026/7/4 17:07:07 阅读更多 →

最新新闻

年度必看!2026AI写作辅助软件大盘点(覆盖 99% 毕业论文需求)

年度必看!2026AI写作辅助软件大盘点(覆盖 99% 毕业论文需求)

本文精选13 款2026 年实测 AI 论文工具,按全流程全能型、垂直领域专精型、润色降重专家、文献管理助手四大类别排序,覆盖从选题到定稿全链路,适配本科 / 硕博 / 期刊全场景,附选型速查表与避坑指南,帮你快速找到最佳拍…

2026/7/5 20:20:19 阅读更多 →
5分钟掌握Rembg:Python图像背景移除的终极解决方案

5分钟掌握Rembg:Python图像背景移除的终极解决方案

5分钟掌握Rembg:Python图像背景移除的终极解决方案 【免费下载链接】rembg Rembg is a tool to remove images background 项目地址: https://gitcode.com/GitHub_Trending/re/rembg 还在为复杂的图片背景处理而烦恼吗?Rembg(Remove B…

2026/7/5 20:20:19 阅读更多 →
TableExport:3分钟为你的HTML表格添加专业数据导出功能

TableExport:3分钟为你的HTML表格添加专业数据导出功能

TableExport:3分钟为你的HTML表格添加专业数据导出功能 【免费下载链接】TableExport The simple, easy-to-implement library to export HTML tables to xlsx, xls, csv, and txt files. 项目地址: https://gitcode.com/gh_mirrors/ta/TableExport 还在为网…

2026/7/5 20:18:19 阅读更多 →
ComfyUI-KJNodes:重构AI工作流架构的模块化扩展方案

ComfyUI-KJNodes:重构AI工作流架构的模块化扩展方案

ComfyUI-KJNodes:重构AI工作流架构的模块化扩展方案 【免费下载链接】ComfyUI-KJNodes Various custom nodes for ComfyUI 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-KJNodes 在AI图像生成和视频处理的复杂工作流中,ComfyUI已成为事实…

2026/7/5 20:16:18 阅读更多 →
5分钟快速部署:Python大麦网自动抢票脚本完整指南

5分钟快速部署:Python大麦网自动抢票脚本完整指南

5分钟快速部署:Python大麦网自动抢票脚本完整指南 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 还在为抢不到热门演唱会门票而烦恼吗?每次开票瞬间售…

2026/7/5 20:12:17 阅读更多 →
基于混沌系统与DNA编码的图像加密算法原理与Matlab实现

基于混沌系统与DNA编码的图像加密算法原理与Matlab实现

1. 项目概述:当混沌遇上DNA,图像加密的新思路最近在复现和优化一些经典的图像加密算法,发现将Logistic映射和Chen超混沌系统结合起来,再引入DNA分块编码,是一条非常有意思的技术路线。这不仅仅是两个混沌系统的简单堆叠…

2026/7/5 20:08:17 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻