前后端运行文档
环境要求
基础环境
| 组件 | 版本要求 | 说明 |
|---|---|---|
| Node.js | >= 16.0.0 | 前端开发环境 |
| JDK | >= 1.8 | 后端开发环境 |
| Maven | >= 3.6 | Java 项目管理工具 |
| MySQL | >= 5.7 | 数据库 |
| Redis | >= 6.0 | 缓存数据库 |
推荐环境
| 组件 | 推荐版本 | 下载地址 |
|---|---|---|
| Node.js | 18.x LTS | https://nodejs.org |
| JDK | 1.8 或 11 | https://adoptium.net |
| Maven | 3.8.x | https://maven.apache.org |
| MySQL | 8.0.x | https://dev.mysql.com |
| Redis | 7.0.x | https://redis.io |
项目结构
duke
├── duke-vue # 前端项目
└── duke-boot # 后端项目
快速开始
1. 克隆项目
# 克隆项目到本地
git clone https://gitee.com/duquanneng_com/duke.git
cd duke
2. 数据库初始化
# 1. 创建数据库
mysql -u root -p
CREATE DATABASE `duke-boot` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# 2. 导入数据库脚本
mysql -u root -p duke-boot < duke-boot/duke-boot.sql
3. 后端启动
# 进入后端目录
cd duke-boot
# 安装依赖并编译
mvn clean install
# 启动项目 (开发环境)
mvn spring-boot:run -Dspring-boot.run.profiles=dev
# 或者直接运行主类
mvn spring-boot:run
4. 前端启动
# 进入前端目录
cd duke-vue
# 安装依赖
npm install
# 启动开发服务器
npm run dev
5. 访问地址
| 服务 | 地址 | 说明 |
|---|---|---|
| 前端 | http://localhost:3000 | Vue 开发服务器 |
| 后端 | http://localhost:9999 | Spring Boot 应用 |
| API 文档 | http://localhost:9999/doc.html | Knife4j 接口文档 |
| 数据库监控 | http://localhost:9999/druid | Druid 监控页面 |
6. 默认账号
- 用户名: admin
- 密码: admin123
详细配置
前端配置
环境变量配置
开发环境 (.env.development)
# 开发环境配置
VITE_APP_TITLE = Duke Admin
VITE_APP_BASE_API = /api
VITE_API_BASE_URL=http://localhost:9999
VITE_CRYPTO_SECRET_KEY=dev-secret-key-here
生产环境 (.env.production)
# 生产环境配置
VITE_APP_TITLE = Duke Admin
VITE_APP_BASE_API = /api
VITE_API_BASE_URL=http://localhost:9999
VITE_CRYPTO_SECRET_KEY=pro-secret-key-here
Vite 配置
// vite.config.ts
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import { resolve } from "path";
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
"@": resolve(__dirname, "src"),
},
},
server: {
port: 3000,
proxy: {
"/api": {
target: "http://localhost:9999",
changeOrigin: true,
rewrite: (path) => path.replace(/^\/api/, ""),
},
},
},
});
后端配置
主配置文件
application.yml
server:
port: 9999
servlet:
context-path:
tomcat:
uri-encoding: UTF-8
accept-count: 1000
threads:
max: 800
min-spare: 100
spring:
profiles:
active: dev
logging:
level:
com.duke: debug
org.springframework: warn
mybatis-plus:
typeAliasesPackage: com.duke.**.domain.entity
mapperLocations: classpath*:mapper/**/*Mapper.xml
configLocation: classpath:mybatis/mybatis-config.xml
token:
header: Authorization
secret: sRohCAUuw19u/tZz+2/pnVTTjWkz+i+qi1vNia8PCI+OzoT7I/4x0Vw2BS868XGQgOC5X2D1L3sdgalOF6GAag==
expireTime: 30
开发环境配置
application-dev.yml
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/duke-boot?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: df123456
druid:
initialSize: 5
minIdle: 10
maxActive: 20
maxWait: 60000
# ... 其他配置
redis:
host: localhost
port: 6379
password: defang
timeout: 10s
database: 0
lettuce:
pool:
min-idle: 0
max-idle: 8
max-active: 8
max-wait: -1ms
