# **京工书院在线教育项目**
本项目是一个 B2C 模式的职业技能在线教育系统,分为前台用户系统和后台运营平台。
本项目能够为会员提供课程购买和在线学习的服务;为管理人员提供讲师管理、课程管理的服务。
## 技术架构
项目前端:Vue+ElementUI+Echarts
项目后端:Spring Boot+Spring Cloud + MyBatis-Plus + MySQL +Docker
![](img/前端.png)
![](img/后端.png)
## 系统架构
![](img/系统架构.png)
![](img/微服务.png)
## 系统服务
### Nacos
Alibaba针对Spring Cloud体系的注册中心
Nacos = Spring Cloud Eureka + Spring Cloud Config + Spring Cloud Bus
![](img/nacos.png)
![](img/nacos2.png)
![](img/nacos3.png)
### OpenFeign
Spring Cloud提供的一个声明式的伪Http客户端
便于调用远程服务
比如service-edu使用OpenFeign调用service-oss:
![](img/openfeign调用.png)
### Sentinel
是阿里开源的一套用于服务容错的综合性解决方案
有流量控制、熔断降级、系统负载保护功能
![](img/Sentinel1.png)
![](img/Sentinel2.png)
![](img/Sentinel3.png)
### Gateway
Spring Cloud Gateway为微服务架构提供简单、有效和统一的API路由管理方式
service-edu路由配置示例:
```
routes:
- id: service-edu
uri: lb://service-edu
predicates:
- Path=/user/**, /*/edu/**
```
## 系统前端
### 前台界面
![](img/前台1.png)
![前台2](img/前台2.png)
![前台3](img/前台3.png)
![前台4](img/前台4.png)
![前台5](img/前台5.png)
![前台6](img/前台6.png)
### 后台界面
![](img/后台1.png)
![后台2](img/后台2.png)
![后台3](img/后台3.png)
![后台4](img/后台4.png)
![后台5](img/后台5.png)
## 系统实现细节
### Mybatis-Plus生成代码
- 使用代码生成器根据数据表自动生成:
- entity 实体类
- mapper 持久层
- xml 持久层具体实现
- service 服务层
- impl 服务层具体实现
- controller 控制层
![](img/Mybatis-Plus生成代码.png)
### Swagger测试
![](img/Swagger测试.png)
### 阿里云OSS文件上传服务
文件少不计费
![](img/阿里云OSS文件上传服务.png)
### 阿里云VOD视频点播服务
计费
![](img/阿里云VOD服务.png)
## 系统部署
本地虚拟机:将微服务打包成docker镜像
![](img/部署1.png)
阿里云仓库存储上传的镜像
![](img/部署2.png)
微服务在3台服务器上运行
![](img/运行1.png)
![运行2](img/运行2.png)
![运行3](img/运行3.png)
# 部署环境配置安装
## 1.MySQL
docker拉取MySQL镜像并运行容器
```
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysqlCollege mysql:5.7
```
MySQL配置
```
docker exec -it mysqlCollege /bin/bash
mysql -uroot -p123456
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
flush privileges;
exit
exit
docker restart mysqlCollege
```
建立数据库
```
CREATE DATABASE jinggong_edu DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE jinggong_cms DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE jinggong_statistics DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE jinggong_trade DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE jinggong_ucenter DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE DATABASE nacos_config DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
```
使用Navicat分别运行sql文件将数据导入数据库
## 2.Nacos
```
docker run --env MODE=standalone --name nacos -d -p 8848:8848 nacos/nacos-server:1.1.4
docker exec -it <容器ID> /bin/bash
cd conf
vi application.properties
```
然后修改以下内容:
```
spring.datasource.platform=${SPRING_DATASOURCE_PLATFORM:mysql}
db.num=${MYSQL_DATABASE_NUM:1}
db.url.0=jdbc:mysql://${MYSQL_MASTER_SERVICE_HOST:39.102.36.248}:${MYSQL_MASTER_SERVICE_PORT:3306}/${MYSQL_MASTER_SERVICE_DB_NAME:nacos_config}?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
//同时把db.url.1的一行删掉
db.user=${MYSQL_MASTER_SERVICE_USER:root}
db.password=${MYSQL_MASTER_SERVICE_PASSWORD:123456}
```
保存修改,`exit`退出容器,然后`docker restart <容器ID>`重启容器
## 3.Sentinel
```
docker run --name sentinel -d -p 8858:8858 -m 256m bladex/sentinel-dashboard
```
## 4.Redis
```
docker run -p 6379:6379 --name redisCollege -d redis --requirepass "123456" --appendonly yes
```
## 5.项目版本配置
```
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/>
</parent>
```
```
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
```
```
<properties>
<java.version>1.8</java.version>
<mybatis-plus.version>3.3.1</mybatis-plus.version>
<velocity.version>2.0</velocity.version>
<swagger.version>2.7.0</swagger.version>
<aliyun.oss.version>3.1.0</aliyun.oss.version>
<jodatime.version>2.10.1</jodatime.version>
<commons-fileupload.version>1.3.1</commons-fileupload.version>
<commons-io.version>2.6</commons-io.version>
<commons-lang.version>3.9</commons-lang.version>
<httpclient.version>4.5.1</httpclient.version>
<jwt.version>0.7.0</jwt.version>
<aliyun-java-sdk-core.version>4.3.3</aliyun-java-sdk-core.version>
<aliyun-java-sdk-vod.version>2.15.2</aliyun-java-sdk-vod.version>
<aliyun-sdk-vod-upload.version>1.4.11</aliyun-sdk-vod-upload.version>
<fastjson.version>1.2.28</fastjson.version>
<gson.version>2.8.2</gson.version>
<json.version>20170516</json.version>
<commons-dbutils.version>1.7</commons-dbutils.version>
<canal.client.version>1.1.0</canal.client.version>
<docker.image.prefix>zx</docker.image.prefix>
<alibaba.easyexcel.version>2.1.1</alibaba.easyexcel.version>
<apache.xmlbeans.version>3.1.0</apache.xmlbeans.version>
</properties>
```
## 6.微服务连接配置
bootstrap.yml以service-edu为例
```
spring:
application:
name: service-edu
profiles:
active: dev # 环境标识,test、prod等
cloud:
nacos:
config:
server-addr: 39.102.46.244:8848 #nacos中心地址
file-extension: yaml # 配置文件格式,如果是properties文件则不用配置此项
```
# 开发环境配置安装
1. vmware软件
2. ubuntu18.04虚拟机 64位
3. 搜狗输入法安装
安装教程:https://www.cnblogs.com/lfri/p/10769144.html
4. java1.8.0_212安装
安装教程:https://www.cnblogs.com/zzy1024/p/11406269.html
下载链接:https://github.com/frekele/oracle-java/releases
5. idea安装
下载链接:https://www.jetbrains.com/idea/download/#section=linux
Ultimate版本
激活码下载链接:http://idea.medeming.com/jetbrains/
可能过一段时间后激活码失效,到时候再想别的办法
6. maven安装
下载链接:https://maven.apache.org/download.cgi
apache-maven-3.6.3-bin.tar.gz
安装教程:
```
# 修改环境变量
sudo gedit ~/.bashrc
# 在文件末尾追加,根据自己的实际情况修改MAVEN_HOME的值
export MAVEN_HOME=/usr/local/apache-maven-3.3.9
export PATH=${PATH}:${MAVEN_HOME}/bin
# 使环境变量马上生效
source ~/.bash
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
软件体系结构原理与方法课程大作业.zip (572个子文件)
.babelrc 229B
mvnw.cmd 6KB
skin.min.css 42KB
visualblocks.css 5KB
content.min.css 4KB
content.inline.min.css 3KB
prism.css 2KB
.editorconfig 243B
tinymce.eot 18KB
tinymce-small.eot 9KB
.eslintignore 34B
loader.gif 3KB
smiley-cool.gif 354B
smiley-wink.gif 350B
smiley-smile.gif 344B
smiley-laughing.gif 343B
smiley-foot-in-mouth.gif 342B
smiley-frown.gif 340B
smiley-kiss.gif 338B
smiley-surprised.gif 338B
smiley-undecided.gif 337B
smiley-innocent.gif 336B
smiley-yell.gif 336B
smiley-embarassed.gif 331B
smiley-cry.gif 329B
smiley-tongue-out.gif 328B
smiley-sealed.gif 323B
smiley-money-mouth.gif 321B
object.gif 152B
anchor.gif 53B
trans.gif 43B
.gitignore 395B
.gitignore 171B
.gitkeep 0B
index.html 399B
favicon.ico 6KB
maven-wrapper.jar 50KB
WXPay.java 25KB
WXPayReport.java 11KB
WXPayRequest.java 10KB
WXPayUtil.java 10KB
CourseServiceImpl.java 9KB
ApiWxController.java 8KB
OrderServiceImpl.java 6KB
HttpClientUtils.java 5KB
MemberServiceImpl.java 5KB
MavenWrapperDownloader.java 5KB
ApiWeixinPayController.java 5KB
CourseController.java 5KB
WeixinPayServiceImpl.java 5KB
TeacherController.java 4KB
VideoServiceImpl.java 4KB
TeacherServiceImpl.java 4KB
DailyServiceImpl.java 4KB
CodeGenerator.java 4KB
CodeGenerator.java 4KB
CodeGenerator.java 4KB
CodeGenerator.java 4KB
CodeGenerator.java 4KB
AdTypeController.java 3KB
ExcelSubjectDataListener.java 3KB
ChapterServiceImpl.java 3KB
ChapterController.java 3KB
ApiOrderController.java 3KB
WXPayConstants.java 3KB
JwtUtils.java 3KB
AdController.java 3KB
SmsServiceImpl.java 3KB
AuthGlobalFilter.java 3KB
FileServiceImpl.java 3KB
ApiCourseCollectController.java 3KB
MediaController.java 3KB
VideoServiceImpl.java 3KB
VideoController.java 3KB
ResultCodeEnum.java 3KB
ApiCourseController.java 3KB
ApiMemberController.java 2KB
AdServiceImpl.java 2KB
FileController.java 2KB
RedisConfig.java 2KB
CourseCollectServiceImpl.java 2KB
Swagger2Config.java 2KB
SubjectController.java 2KB
R.java 2KB
Course.java 2KB
ApiSmsController.java 2KB
Video.java 2KB
WXPayConfig.java 2KB
Order.java 2KB
GlobalExceptionHandler.java 2KB
StreamUtils.java 2KB
Member.java 2KB
Teacher.java 1KB
RandomUtils.java 1KB
PayLog.java 1KB
DailyController.java 1KB
CourseService.java 1KB
CourseMapper.java 1KB
ApiIndexController.java 1KB
SubjectServiceImpl.java 1KB
共 572 条
- 1
- 2
- 3
- 4
- 5
- 6
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功