保姆级避坑指南:用IDEA 2024.1 + MySQL 8.0 + Redis 7.2 从零跑通JeecgBoot 3.8.0
保姆级避坑指南:用IDEA 2024.1 + MySQL 8.0 + Redis 7.2 从零跑通JeecgBoot 3.8.0
JeecgBoot作为当前主流的企业级低代码开发平台,其环境配置的复杂性常常让开发者望而生畏。本文将聚焦IDEA 2024.1、MySQL 8.0和Redis 7.2三大核心组件的深度整合,通过20+个真实踩坑案例的解决方案,带你彻底打通JeecgBoot 3.8.0的运行链路。
1. 环境准备阶段的致命陷阱
1.1 JDK版本选择的隐藏雷区
JeecgBoot 3.8.0官方推荐JDK17,但实际开发中会遇到三个典型问题:
- Lombok兼容性问题:当使用JDK17+时,IDEA 2024.1需要额外配置:
# 在IDEA的VM options中添加 --add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED - 反射警告泛滥:在
application-dev.yml中必须添加:spring: main: allow-circular-references: true - 模块化冲突:遇到
java.lang.module相关错误时,需在pom.xml显式声明:<properties> <maven.compiler.release>17</maven.compiler.release> </properties>
1.2 IDEA 2024.1的专有配置
新版IDEA在以下场景需要特别注意:
| 配置项 | 传统方案 | 2024.1优化方案 |
|---|---|---|
| Maven仓库 | 手动配置settings.xml | 使用IDE内置镜像加速 |
| 编译器 | Javac默认 | 必须切换为Eclipse编译器 |
| 内存分配 | 默认1GB | 建议调整为:-Xms2048m -Xmx4096m |
提示:遇到"Kotlin插件不兼容"警告时,需禁用内置Kotlin插件,改用Marketplace最新版
2. MySQL 8.0认证协议的那些坑
2.1 密码加密方式的世纪难题
MySQL 8.0默认使用caching_sha2_password,而JeecgBoot初始配置可能不兼容:
-- 解决方案1:修改用户密码策略 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; -- 解决方案2(推荐):在my.ini添加 [mysqld] default_authentication_plugin=mysql_native_password2.2 时区冲突的完美解决
当遇到The server time zone value 'Öйú±ê׼ʱ¼ä'错误时:
- 临时方案:
// JDBC连接串追加参数 jdbc:mysql://localhost:3306/jeecg-boot?useSSL=false&serverTimezone=Asia/Shanghai - 永久方案:
SET GLOBAL time_zone = '+8:00';
3. Redis 7.2的高效配置指南
3.1 内存优化配置
在redis.windows.conf中关键参数:
maxmemory 1gb maxmemory-policy allkeys-lru appendonly yes3.2 哨兵模式避坑
开发环境常见错误及解决:
- 端口冲突:修改默认6379端口
redis-server --port 6380 - 保护模式:在配置文件中设置
protected-mode no - ACL认证:JeecgBoot需关闭
requirepass ""
4. 前后端联调终极方案
4.1 前端依赖安装的玄学问题
当pnpm install失败时,按此顺序尝试:
- 清除缓存:
pnpm store prune - 删除锁定文件:
rm -rf pnpm-lock.yaml node_modules - 使用国内镜像:
pnpm config set registry https://registry.npmmirror.com
4.2 跨域问题的花式解法
在vite.config.ts中配置:
server: { proxy: { '/api': { target: 'http://localhost:8080', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') } } }5. 项目启动的异常大全
5.1 数据库连接池爆满
典型错误日志:
HikariPool-1 - Connection is not available解决方案:
spring: datasource: hikari: maximum-pool-size: 15 leak-detection-threshold: 600005.2 Redis连接超时
在application-dev.yml中添加:
spring: redis: timeout: 5000 lettuce: pool: max-active: 16 max-wait: 100006. 效率提升的终极技巧
6.1 IDEA的智能配置
创建jeecg-boot.run.xml文件:
<component name="ProjectRunConfigurationManager"> <configuration default="false" name="JeecgSystemApplication" type="SpringBootApplicationConfigurationType"> <module name="jeecg-module-system" /> <option name="ALTERNATIVE_JRE_PATH" value="17" /> <envs> <env name="TZ" value="Asia/Shanghai" /> </envs> </configuration> </component>6.2 数据库脚本自动执行
在Maven中加入:
<plugin> <groupId>org.flywaydb</groupId> <artifactId>flyway-maven-plugin</artifactId> <version>9.0.0</version> <configuration> <url>jdbc:mysql://localhost:3306/jeecg-boot</url> <user>root</user> <password>123456</password> </configuration> </plugin>从第一次启动报错到最终看到登录页面,整个过程可能会遇到50+个不同类型的错误。记住三个黄金法则:查看完整堆栈日志、隔离问题发生场景、优先验证基础组件连接。当所有服务都正常运行后,建议立即创建系统快照,这个习惯能为后续开发节省大量时间。
