在线教育网站项目
一、项目简介:
在线教育项目采用的是B2C的商业模块,主要分为前台网站系统和后台运营平台。
角色分为管理员和(普通会员)用户,其中系统后台由管理员进行使用,系统前台由用户进行使用。
系统后台包含的模块主要有:
1、讲师管理模块
2、课程分类管理功能
3、课程管理功能
(1)视频
4、统计分析模块
5、订单管理
6、banner管理、等等
系统前台包含的模块主要有:
1、首页数据的显示
2、讲师列表和详情
3、课程列表和课程详情
(1)视频在线播放
4、登录和注册功能、等等
二、开发环境
(一)、开发环境
Windows+JDK1.8+Idea+vscode+linux+mysql+maven+spring boot
(二)、在线教育项目技术栈
后端技术架构:SpringBoot + SpringCloud + MyBatis-Plus + MySQL + Maven+EasyExcel+ nginx
前端的架构是:Vue+element-ui+Node.js + ECharts
其他涉及到的技术:包括Redis、阿里云OSS、阿里云视频点播
业务中使用了ECharts做图表展示,使用EasyExcel完成分类批量添加、注册分布式单点登录使用了JWT
(三)、开发时间
2020.6
三、项目模块实现
项目结构:
创建父工程 其类型为pom类型,用于管理依赖版本和放公共依赖
下面为子模块和子子模块,其中子子模块为功能实现模块
配置文件: application.properties
# 服务端口
server.port=8001
# 服务名
spring.application.name=service-edu
# 环境设置:dev、test、prod
spring.profiles.active=dev
# mysql数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
#注册中心nacos
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
#开启熔断机制配置
feign.hystrix.enabled=true
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#配置mapper xml文件的路径
mybatis-plus.mapper-locations=classpath:com/gt/eduservice/mapper/xml/*.xml
springboot启动类
package com.gt.eduservice;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan(basePackages = {
"com.gt"})
@EnableDiscoveryClient //注册中心
@EnableFeignClients //调用服务
/*@MapperScan("com.gt.eduservice.mapper")*/
public class eduApplication {
public static void main(String[] args) {
SpringApplication.run(eduApplication.class,args);
}
}
配置swagger2
*前后端分离开发模式中,api文档是最好的沟通方式。
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。*
1、在父工程下创建子模块common,再commom的pom文件中引入,lombok,swagger,
mybatis-plus等依赖
具体以来如下:
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<scope>provided </scope>
</dependency>
<!--lombok用来简化实体类:需要安装lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided </scope>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<scope>provided </scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<scope>provided </scope>
</dependency>
2、在子模块common下创建子子模块service_base,并在子子模块service_base中创建swagger的配置类。
代码如下:
package com.gt.servicebase;
import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org