本文档记录了当前主机的开发环境配置情况,并提供了在集成开发环境中开发与导入新闻发布与管理系统的指南。
-
集成开发环境:IntelliJ IDEA 2025.2.4
- 安装路径:D:\Jetbrains\IntelliJ IDEA 2025.2.4
- 说明:无全局环境变量。
-
JDK 环境:
- 系统默认版本:OpenJDK 17.0.18 (已配置环境变量,可直接执行)
- 本地安装路径:C:\Users\24831.jdks
- 检测到的可用版本列表:
- corretto-1.8.0_492 (JDK 8)
- ms-17.0.18 (JDK 17)
- ms-21.0.10 (JDK 21)
- oracleJdk-21 (JDK 21)
- corretto-23.0.2 (JDK 23)
- corretto-24.0.2 (JDK 24)
- openjdk-25.0.1 (JDK 25)
-
前端开发环境:
- Node.js版本:v22.21.1 (已配置环境变量,安装路径为 C:\nvm4w\nodejs\node.exe)
- npm版本:10.9.4 (已配置环境变量)
- Git版本:2.45.1.windows.1 (已配置环境变量,安装路径为 C:\Program Files\Git\cmd\git.exe)
- 提示:如果在本机 PowerShell 终端执行 npm 命令时遇到禁止运行脚本的错误(关于 Execution_Policies 限制),可通过运行
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser允许运行脚本,或者在执行命令时使用npm.cmd代替npm。
-
数据库服务:MySQL 8.0
- 服务名称:MySQL80
- 服务状态:正在运行
- 监听端口:3306
- 安装路径:C:\Program Files\MySQL\MySQL Server 8.0
- 本机开发账号:root
- 本机开发密码:114514
- 说明:无全局环境变量,命令行可使用完整路径执行 MySQL 客户端。
-
项目构建工具:
- Maven:本地命令行未配置全局 Maven 环境变量。
- 本地已缓存的 Maven 包装器版本路径:
- C:\Users\24831.m2\wrapper\dists\apache-maven-3.9.15\0226a00282e400185496f3b60ec5a3f029cbdc6893912937d4876d57695224e1
- 集成开发环境内置的 Maven 路径:
- D:\Jetbrains\IntelliJ IDEA 2025.2.4\plugins\maven\lib\maven3
目前项目已经完成基础开发,具体结构如下:
- sql:存放数据库初始化脚本。
- 脚本文件:d:\Code\IDEA\MoeNews\sql\init.sql。
- 内容:创建
moenews数据库、用户表、新闻分类表、新闻表、评论表,并写入默认用户、分类和示例新闻。
- backend:后端 Spring Boot 3.x 项目工程。
- 项目配置文件:d:\Code\IDEA\MoeNews\backend\pom.xml (已引入 Web、Validation、MyBatis-Plus、MySQL、Lombok、JWT 和加密等依赖)。
- 主启动类:d:\Code\IDEA\MoeNews\backend\src\main\java\com\moenews\MoeNewsApplication.java。
- 配置文件:d:\Code\IDEA\MoeNews\backend\src\main\resources\application.yml (已配置数据库连接、MyBatis-Plus 选项和本地上传路径)。
- 主要包结构:
common:统一返回结果。config:MyBatis-Plus、Web MVC、跨域、上传静态资源映射配置。controller:认证、前台新闻、后台用户/分类/新闻/评论/上传/统计接口。dto:请求参数对象。entity:数据库实体。exception:业务异常和全局异常处理。mapper:MyBatis-Plus Mapper。security:JWT 工具、登录用户上下文、自定义拦截器。service:业务逻辑。vo:接口响应视图对象。
- frontend:前端 Vue 3 + Vite 项目工程。
- 已完成前台新闻展示、登录注册、个人资料、后台统计、用户管理、分类管理、新闻管理、评论管理、Markdown 编辑和图片上传页面。
- 主要目录:
src/api:Axios 请求封装。src/layout:前台和后台布局。src/router:Vue Router 路由与访问控制。src/stores:Pinia 登录状态。src/utils:状态选项、资源 URL 工具。src/views:前台和后台页面。
- uploads:本地上传文件目录。
- 该目录由运行时生成,已在
.gitignore中忽略,不提交到 Git。
- 该目录由运行时生成,已在
- 打开 IntelliJ IDEA,选择打开项目 (Open)。
- 选择 MoeNews 的根目录
D:\Code\IDEA\MoeNews确认打开。 - 打开后,IDEA 会自动检测并提示加载 Maven 模块,点击确认或等待 Maven 自动同步依赖即可。
- 本机 MySQL 服务(MySQL80)已在 3306 端口运行,请使用您的客户端工具(如 Navicat,或 IntelliJ IDEA 右侧的 Database 面板)连接到该服务。
- 连接账号为
root,密码为114514。 - 连接成功后,打开并运行位于
d:\Code\IDEA\MoeNews\sql\init.sql的脚本,它将自动创建名为moenews的数据库以及相关的用户、分类、新闻和评论数据表,并导入初始的管理员、普通用户和新闻分类数据。
也可以在 PowerShell 中执行:
& 'C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe' --default-character-set=utf8mb4 -uroot -p114514 -e "source D:/Code/IDEA/MoeNews/sql/init.sql"注意:不要使用 PowerShell 的 < sql\init.sql 重定向方式导入,因为 PowerShell 不支持该 Bash 写法,且容易产生中文字符集问题。
当前 application.yml 已配置:
spring:
datasource:
url: jdbc:mysql://localhost:3306/moenews?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: 114514如果迁移到其他机器,需要同步修改 spring.datasource.username、spring.datasource.password 和 moenews.upload.path。
- 在 IntelliJ IDEA 中定位到 MoeNewsApplication.java 文件。
- 右键点击并选择运行,后端服务将启动并监听 8080 端口。
也可以使用 IDEA 内置 Maven 在 PowerShell 中启动:
cd D:\Code\IDEA\MoeNews\backend
& 'D:\Jetbrains\IntelliJ IDEA 2025.2.4\plugins\maven\lib\maven3\bin\mvn.cmd' spring-boot:run后端启动后可访问:
- 前台新闻接口:http://localhost:8080/api/news
- 公开分类接口:http://localhost:8080/api/categories
- 后台统计接口:http://localhost:8080/api/admin/dashboard/statistics
- 在集成开发环境的内置终端窗口中,将工作目录切换到
frontend。 - 执行以下命令安装前端依赖:
npm.cmd install
- 安装完毕后,执行以下命令启动前端开发服务器:
npm.cmd run dev
- 启动完成后,可通过浏览器访问前端开发控制台(通常为 http://localhost:5173)。
当前建议访问地址:
数据库初始化后默认账号如下:
| 角色 | 用户名 | 密码 | 说明 |
|---|---|---|---|
| 管理员 | admin | 123456 | 可访问后台全部功能 |
| 普通用户 | user | 123456 | 可浏览新闻、发表评论、删除自己的评论 |
初始化脚本会创建 3 个分类和 1 条示例新闻,便于前台列表和详情页直接展示。
cd D:\Code\IDEA\MoeNews\backend
& 'D:\Jetbrains\IntelliJ IDEA 2025.2.4\plugins\maven\lib\maven3\bin\mvn.cmd' -DskipTests compilecd D:\Code\IDEA\MoeNews\frontend
npm.cmd run build管理员登录:
Invoke-RestMethod -Uri http://localhost:8080/api/auth/login `
-Method Post `
-ContentType 'application/json; charset=utf-8' `
-Body '{"username":"admin","password":"123456"}'前台新闻列表:
Invoke-RestMethod -Uri http://localhost:8080/api/news -Method GetGet-NetTCPConnection -LocalPort 8080,5173 -State Listen -ErrorAction SilentlyContinue |
Select-Object LocalPort,OwningProcessGet-NetTCPConnection -LocalPort 8080,5173 -State Listen -ErrorAction SilentlyContinue |
ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }当前项目已完成一次端到端流程测试:
- 管理员登录成功。
- 普通用户登录成功。
- 普通用户访问后台接口被拒绝。
- 管理员新增分类成功。
- 管理员上传 PNG 封面成功。
- 管理员发布新闻成功。
- 前台新闻列表能搜索到新新闻。
- 前台新闻详情能展示 Markdown 正文。
- 普通用户发表评论成功。
- 普通用户删除自己的评论成功。
- 管理员隐藏评论后,前台不再展示。
- 后台统计接口正常。
- 前端页面构建通过,后端编译通过。
测试过程中产生的上传文件位于 uploads/,该目录不参与 Git 提交。
远程仓库:
origin https://github.com/Dawn6666666/MoeNews.git