23网络工程 尹智灏
本项目是一个基于 Spring Boot 和 Docker 的中小型电商系统实验项目。实现了用户注册登录、商品浏览、购物车、订单管理以及后台管理(日志监控、商品管理)等功能。
src/main/java/org/self4215/
├── config/ # 安全配置 (SecurityConfig) 与全局异常处理
├── controller/ # Web 控制器 (Admin, Product, Order, etc.)
├── entity/ # 数据库实体 (User, Product, Order, Log)
├── repository/ # JPA 数据访问层
└── service/ # 业务逻辑层 (OrderService, LogService)
src/main/resources/
├── templates/ # Thymeleaf 前端模板
├── application.properties # 应用配置
└── data.sql # 初始数据脚本
-
拉取镜像
在终端中运行以下命令:
docker pull ghcr.io/self4215/javawebdesignlesson_exp_ecommerce_02:latest- 创建配置文件
(1) 创建 .env 文件
为了安全起见,我们将敏感配置放入环境变量中。
在任意目录下创建一个名为 .env 的文件,并填入以下内容(或者参考源码内的 .env.example 文件):
# 务必在生产环境中修改以下密码
# Database Configuration
MYSQL_DATABASE=ecommerce_db
MYSQL_ROOT_PASSWORD=your_secure_password
# Application Database Connection
DB_HOST=mysql
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=your_secure_password(2) 第二步:创建 docker-compose.yml 文件
在同一目录下创建一个名为 docker-compose.yml 的文件,并填入以下内容:
version: '3.8'
services:
mysql:
image: mysql:8.4
container_name: ecommerce-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
volumes:
- mysql-data:/var/lib/mysql
networks:
- ecommerce-network
app:
image: ghcr.io/self4215/javawebdesignlesson_exp_ecommerce_02:latest
container_name: ecommerce-app
restart: always
ports:
- "8080:8080"
environment:
- DB_HOST=${DB_HOST}
- DB_PASSWORD=${DB_PASSWORD}
depends_on:
- mysql
networks:
- ecommerce-network
networks:
ecommerce-network:
volumes:
mysql-data:-
启动服务
在该目录下,运行以下命令:
docker-compose up -d-
访问项目
等待服务启动完成后,访问地址:
http://localhost:8080
本项目采用 MIT 许可证。