开发环境
开发环境
本篇带你用 H2 内存库一键启动前后端,配置 IntelliJ IDEA 工程并启用热重载,适合日常开发与调试。
为什么用 H2
H2 是纯 Java 内存数据库,无需安装 MySQL 即可启动。h2 profile 会在应用启动时自动执行 schema-h2.sql + data-h2.sql,自动建好 53 张表并写入基础数据,真正做到「开箱即用」。
环境要求
| 依赖 | 版本 | 说明 |
|---|---|---|
| JDK | 17 | 项目编译目标为 17;JDK 21 + Maven 命令行会触发 Lombok TypeTag 错误,强烈建议用 17,详见 |
| Maven | 3.8+ | 后端构建 |
| Node.js | 18+ | 前端构建(推荐 22) |
| 包管理器 | pnpm 8+ / npm 9+ | 前端依赖,项目含 pnpm-workspace.yaml,推荐 pnpm |
| Redis | 6+ | 可选;缺失时缓存 / 防抖 / 限流功能降级。默认连远程 124.71.29.50:6379,详见 |
一、启动后端(H2 profile)
cd backend
# 1. 编译(跳过测试,避免 Lombok×JDK21 等问题拖慢首次构建)
mvn clean install -DskipTests
# 2. 以 H2 profile 启动
mvn spring-boot:run -Dspring-boot.run.profiles=h2启动成功后:
- 后端服务地址:
http://localhost:52856 - H2 控制台:
http://localhost:52856/h2-console- JDBC URL:
jdbc:h2:mem:lowcode - 用户名:
sa - 密码:空
- JDBC URL:
H2 数据会丢
H2 是内存库(jdbc:h2:mem:lowcode;DB_CLOSE_DELAY=-1),进程结束后数据全部丢失,下次启动重新执行建表与种子脚本。如需持久化,请改用 MySQL,参考 。
H2 自动建表原理
application-h2.yml 中配置了 Spring SQL 初始化:
spring:
sql:
init:
schema-locations: classpath:schema-h2.sql # 建表(53 张表)
data-locations: classpath:data-h2.sql # 种子数据(租户/用户/角色/菜单/字典)
mode: always # 每次启动都执行启动时 Spring Boot 会依次执行上述脚本。此外,com.lowcode.config.DataInitializer(CommandLineRunner)会在启动后进一步补齐权限表、SSO 表、AI 模型配置表、审计配置表等运行时表结构,并创建默认角色与菜单。
二、启动前端
cd frontend
# 安装依赖(推荐 pnpm,项目含 pnpm-workspace.yaml)
pnpm install
# 或 npm install
# 启动开发服务
pnpm dev启动成功后访问 http://localhost:3000。
前端开发服务(Vite)通过代理把 /api 请求转发到后端,配置见 frontend/vite.config.ts:
server: {
host: '0.0.0.0',
port: 3000,
proxy: {
'/api': {
target: 'http://127.0.0.1:52856', // 指向后端
changeOrigin: true,
// 注意:没有 rewrite,/api 前缀原样透传给后端
rewrite: (path) => path
}
}
}host: '0.0.0.0' 允许局域网通过 IPv4 IP(如 http://192.168.x.x:3000)访问,方便团队联调。
三、登录系统
前端打开 http://localhost:3000,使用默认账号登录。
默认密码因 profile 而异
不同 profile 下默认管理员密码不同,请按你的环境对照:
| 环境 | 账号 | 密码 | 来源 |
|---|---|---|---|
| H2(开发) | admin | 123456 | data-h2.sql 种子数据 |
| MySQL(首次启动) | admin | admin123 | DataInitializer.initAdminUser() 创建 |
| 新建租户 | admin | 123456 | DataInitializer.initTenantAdmin() 创建 |
原因:H2 启动时 data-h2.sql 先建好 admin(密码 123456),随后 DataInitializer 发现 admin 已存在便不再重置密码;MySQL 首次启动没有种子数据,DataInitializer 新建 admin 时使用默认密码 admin123。
可通过启动参数覆盖 MySQL 首次密码:
java -Dapp.admin.password=你的密码 -jar lowcode-platform.jar --spring.profiles.active=mysql登录后可选择租户,进入工作台。
四、IntelliJ IDEA 配置
1. 项目导入
用 IDEA File -> Open 打开仓库根目录或 backend/、frontend/ 子目录均可。建议以 Maven 项目方式导入 backend,前端用 IDEA 内置 Vue 插件打开 frontend。
2. JDK 设置
务必用 JDK 17
File -> Project Structure -> Project SDK 选择 JDK 17。Settings -> Build, Execution, Deployment -> Build Tools -> Maven -> Runner -> JRE 也选 17。
JDK 21 下 Lombok 注解处理在 Maven 命令行构建时可能崩 TypeTag,IDEA 内置编译器虽通常能绕过,但仍建议统一 17 以避免环境差异。
3. 后端运行配置
新建 Spring Boot 运行配置:
- Main class:
com.lowcode.LowCodeApplication(或主启动类) - Module:
lowcode-platform - Active profiles:
h2 - Working directory:
$ProjectFileDir$/backend - JRE:17
或用 Maven 运行配置,Command line 填 spring-boot:run -Dspring-boot.run.profiles=h2。
4. 前端运行配置
新建 npm 运行配置:
- package.json:
frontend/package.json - Command:
run - Scripts:
dev
或直接在终端 cd frontend && pnpm dev。
5. Lombok 与注解处理
- 安装 IDEA 的 Lombok 插件(新版 IDEA 已内置)。
Settings -> Build, Execution, Deployment -> Compiler -> Annotation Processors勾选 Enable annotation processing。
五、热重载
前端:Vite HMR(开箱即用)
Vite 提供模块热替换(HMR),修改 .vue / .ts 文件后浏览器自动刷新,无需额外配置。
后端:无内置 DevTools
后端默认无热重载
backend/pom.xml 中未引入 spring-boot-devtools,修改后端代码后需手动重启后端进程。
如需后端热重载,可选方案:
IDEA Debug 热替换(推荐):以 Debug 模式运行,修改方法体内的代码后
Build -> Reload Changed Classes(受 JVM 热替换限制,不能改签名 / 加字段)。引入 spring-boot-devtools:在
backend/pom.xml添加:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency>重新启动后,classpath 下文件变更会自动触发应用重启。
手动重启:
Ctrl+C停掉mvn spring-boot:run后重新执行。H2 重启会丢数据,频繁改后端时建议改用 MySQL 开发。
六、常用调试入口
| 场景 | 入口 |
|---|---|
| 查看后端 SQL 日志 | application.yml 已开 log-impl: StdOutImpl,控制台直接打印 SQL |
| 查看 H2 数据 | http://localhost:52856/h2-console |
| 查看后端接口 | 启动后访问各 /api/** 端点;完整列表见 |
| 查看数据库表 | 见 |
| 排查 404 / 双重 /api | 见 与 |
H2 控制台连不上?
确认以 h2 profile 启动(application-h2.yml 中 spring.h2.console.enabled: true)。控制台路径为 /h2-console。JDBC URL 必须填 jdbc:h2:mem:lowcode,与配置文件一致。
前端启动报依赖 / 版本错误
项目使用 pnpm-workspace.yaml,建议统一用 pnpm。若已用 npm 装过,删除 node_modules 与 package-lock.json 后用 pnpm 重装:rm -rf node_modules && pnpm install。
下一步:体验完 H2 后,可阅读 准备 MySQL,或直接看 。
