一: 功能简介

  • 谷粒学院,是一个B2C模式的职业技能在线教育系统,分为前台用户系统和后台运营平台。

二: 系统模块Analysis

三: 系统架构Analysis

构架设计需要考虑的几个方面

  • 性能 : 主要考虑访问频率,每个用户每天的访问次数。项目初始阶段用户的访问量并不大,如果考虑做运营推广,可能会迎来服务器访问量骤增,因此要考虑分布式部署,引入缓存
  • 可扩展性: 系统功能会随着用户量的增加以及多变的互联网用户需求不断地扩展,因此考虑到系统的可扩展性的要求需要使用微服务架构,引入消息中间件
  • 高可用 : 系统一旦宕机,将会带来不可挽回的损失,因此必须做负载均衡,甚至是异地多活这类复杂的方案。如果数据丢失,修复将会非常麻烦,只能靠人工逐条修复,这个很难接受,因此需要考虑存储高可靠。我们需要考虑多种异常情况:机器故障、机房故障,针对机器故障,我们需要设计 MySQL 同机房主备方案;针对机房故障,我们需要设计 MySQL 跨机房同步方案。
  • 安全性 : 系统的信息有一定的隐私性,例如用户的个人身份信息,不包含强隐私(例如玉照、情感)的信息,因此使用账号密码管理、数据库访问权限控制即可。
  • 成本 : 视频类网站的主要成本在于服务器成本、流量成本、存储成本、流媒体研发成本,中小型公司可以考虑使用云服务器和云服务。

四: 项目工程的架构简介

1:工程结构

guli-parent:在线教学根目录(父工程),管理四个子模块:canal-client:canal数据库表同步模块(统计同步数据)common:公共模块父节点common-util:工具类模块,所有模块都可以依赖于它service-base:service服务的base包,包含service服务的公共配置类,所有service模块依赖于它spring-security:认证与授权模块,需要认证授权的service服务依赖于它infrastructure:基础服务模块父节点api-gateway:api网关服务service:api接口服务父节点service-acl:用户权限管理api接口服务(用户管理、角色管理和权限管理等)service-cms:cms api接口服务service-edu:教学相关api接口服务service-msm:短信api接口服务service-order:订单相关api接口服务service-oss:阿里云oss api接口服务service-statistics:统计报表api接口服务service-ucenter:会员api接口服务service-vod:视频点播api接口服务

五: 创建父工程

1、创建sprigboot工程guli-parent

  • 在idea开发工具中,使用 Spring Initializr 快速初始化一个 Spring Boot 模块,版本使用:2.2.1.RELEASE
  • new Project的信息配置 next next 不需要添加任何模块直接快速构架项目
  • groupId:com.atguigu
  • artifactId:guli-parent

2、删除 src 目录

3、配置 pom.xml

  • 项目采用是修改版本为 :2.2.1.RELEASE 的修改
  • 节点后面添加 pom类型
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><modules><module>service</module><module>common</module></modules><!--项目父工程--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!--GAV标签--><groupId>com.atguigu</groupId><artifactId>guli_parent</artifactId><packaging>pom</packaging><version>0.0.1-SNAPSHOT</version>

4、在pom.xml中添加依赖的版本

  • 删除pom.xml中的内容
<!-- 以下内容删除 -->
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
</dependencies>
  • 替换掉所需的 项目中所需的 jar 确定依赖的版本进行管理
<!--父工程管理版本号--><properties><!--Java 版本--><java.version>1.8</java.version><guli.version>0.0.1-SNAPSHOT</guli.version><mybatis-plus.version>3.0.5</mybatis-plus.version><velocity.version>2.0</velocity.version><swagger.version>2.7.0</swagger.version><aliyun.oss.version>2.8.3</aliyun.oss.version><jodatime.version>2.10.1</jodatime.version><poi.version>3.17</poi.version><commons-fileupload.version>1.3.1</commons-fileupload.version><commons-io.version>2.6</commons-io.version><httpclient.version>4.5.1</httpclient.version><jwt.version>0.9.1</jwt.version><aliyun-java-sdk-core.version>4.3.3</aliyun-java-sdk-core.version><aliyun-sdk-oss.version>2.8.3</aliyun-sdk-oss.version><aliyun-java-sdk-vod.version>2.15.2</aliyun-java-sdk-vod.version><aliyun-java-vod-upload.version>1.4.11</aliyun-java-vod-upload.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>20140107</json.version><commons-dbutils.version>1.7</commons-dbutils.version><canal.client.version>1.0.12</canal.client.version><docker.image.prefix>zx</docker.image.prefix><cloud-alibaba.version>0.2.2.RELEASE</cloud-alibaba.version></properties>
  • 配置 锁定依赖的版本
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><modules><module>service</module><module>common</module></modules><!--项目父工程--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><!--GAV标签--><groupId>com.atguigu</groupId><artifactId>guli_parent</artifactId><packaging>pom</packaging><version>0.0.1-SNAPSHOT</version><!--父工程管理版本号--><properties><!--Java 版本--><java.version>1.8</java.version><guli.version>0.0.1-SNAPSHOT</guli.version><mybatis-plus.version>3.0.5</mybatis-plus.version><velocity.version>2.0</velocity.version><swagger.version>2.7.0</swagger.version><aliyun.oss.version>2.8.3</aliyun.oss.version><jodatime.version>2.10.1</jodatime.version><poi.version>3.17</poi.version><commons-fileupload.version>1.3.1</commons-fileupload.version><commons-io.version>2.6</commons-io.version><httpclient.version>4.5.1</httpclient.version><jwt.version>0.9.1</jwt.version><aliyun-java-sdk-core.version>4.3.3</aliyun-java-sdk-core.version><aliyun-sdk-oss.version>2.8.3</aliyun-sdk-oss.version><aliyun-java-sdk-vod.version>2.15.2</aliyun-java-sdk-vod.version><aliyun-java-vod-upload.version>1.4.11</aliyun-java-vod-upload.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>20140107</json.version><commons-dbutils.version>1.7</commons-dbutils.version><canal.client.version>1.0.12</canal.client.version><docker.image.prefix>zx</docker.image.prefix><cloud-alibaba.version>0.2.2.RELEASE</cloud-alibaba.version></properties><!--SpringBoot框架所需的 jar 起步依赖--><dependencyManagement><dependencies><!--Spring Cloud--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency><!--mybatis-plus 持久层--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>${mybatis-plus.version}</version></dependency><!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 --><!-- https://mvnrepository.com/artifact/org.apache.velocity/velocity-engine-core --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>${velocity.version}</version></dependency><!--swagger--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>${swagger.version}</version></dependency><!--swagger ui--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>${swagger.version}</version></dependency><!--aliyunOSS--><!-- https://mvnrepository.com/artifact/com.aliyun.oss/aliyun-sdk-oss --><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun.oss.version}</version></dependency><!--日期时间工具--><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>${jodatime.version}</version></dependency><!--xls--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>${poi.version}</version></dependency><!--xlsx--><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>${poi.version}</version></dependency><!--文件上传--><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>${commons-fileupload.version}</version></dependency><!--commons-io--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>${commons-io.version}</version></dependency><!--httpclient--><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>${httpclient.version}</version></dependency><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>${gson.version}</version></dependency><!-- JWT --><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>${jwt.version}</version></dependency><!--aliyun--><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>${aliyun-java-sdk-core.version}</version></dependency><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun-sdk-oss.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-vod</artifactId><version>${aliyun-java-sdk-vod.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-vod-upload</artifactId><version>${aliyun-java-vod-upload.version}</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-sdk-vod-upload</artifactId><version>${aliyun-sdk-vod-upload.version}</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version></dependency><dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>${json.version}</version></dependency><!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils --><dependency><groupId>commons-dbutils</groupId><artifactId>commons-dbutils</artifactId><version>${commons-dbutils.version}</version></dependency><dependency><groupId>com.alibaba.otter</groupId><artifactId>canal.client</artifactId><version>${canal.client.version}</version></dependency></dependencies></dependencyManagement><!--编译打包插件--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

六: guli-parent:在线教学根目录(父工程)就构建好了

SpringBoot项目搭建 day1相关推荐

  1. Springboot项目搭建(前端到数据库,超详细,附详细步骤截图)

    下面详细谈谈我的第一个springboot项目搭建,希望会给还在摸索的同学一点帮助. 有兴趣的同学请加qq:1718283122 备注csdn ---------------------------- ...

  2. springboot项目搭建0000-导航篇

    前言:这篇帖子没有任何涉及技术的内容,如果你想找springboot相关的技术知识,可以不用往下看了. 这篇帖子仅仅是对我的springboot相关博客,开辟一个导航页,方便读者.技术大牛略过 主要参 ...

  3. SpringBoot——项目搭建、整合Mybatis、整合redis(集群)

    一.项目搭建 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&q ...

  4. 物联网云平台设计与开发:springboot项目搭建与开发(后端)

    目录 实验目的 实验内容 具体实验步骤 第一步:构建springboot项目 第二步:项目集成spring-web.Mysql驱动.Mybatis等框架. 第三步:安装Mysql软件,使用Navica ...

  5. 超简单的Springboot 项目搭建

    要求:搭建一个springboot项目并输出helloworld: 开发环境:Idea2019 框架:Springboot 工具:Maven 新建springboot项目 这里选择的项目是spring ...

  6. springboot项目搭建

    一 Springboot 基本概念 1.1 什么是 springboot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

  7. Springboot项目搭建有ftpClientPool的Ftp工具类

    1 前言 最近项目中用到了FTP,于是自己写了一个FTP工具类,现将其分享出来,供大家借鉴使用. FTP工具类的实现可以分为两部分: 基于apache commons-pool2的ObjectPool ...

  8. Springboot项目搭建(三)整合thymeleaf模板

    springboot整合thymeleaf模板 一.POM文件添加依赖 <!--thymeleaf--> <dependency><groupId>org.spri ...

  9. springboot项目搭建0051-通用mapper使用mapper.xml

    项目地址:https://github.com/wenrongyao/springboot-demo.git 摘要:mybatis是优秀的持久化框架,但是引入mybatis后还要频繁的写增删改查,很不 ...

最新文章

  1. STL中基本容器有: string、vector、list、deque、set、map
  2. Hhadoop环境部署
  3. mysql 合并left join 数据条目
  4. Mac下修改ZOC中文乱码
  5. PHP好玩的代码一(笛卡尔的情书)
  6. java直接引用_Java虚拟机 - 符号引用和直接引用理解
  7. win10家庭版远程桌面_win10 家庭版使用RDPWrap开通远程桌面服务
  8. Tasker to stop Poweramp control for the headset while there is an incoming SMS - frozen
  9. 计算机辅助设计主要学什么,计算机辅助设计教学大纲
  10. 带你近距离了解小米这家公司
  11. 多语言国家与缩写映射表
  12. 2017阿里巴巴校招在线笔试——货架格子编号
  13. 强烈推荐纪录片——《互联网之子》
  14. Linux之网络管理
  15. 测试手机是否降频软件,如何检测自己的iPhone是否被苹果降频 降频的处理方法有哪些...
  16. 串行传输,并行传输,异步同步传输
  17. python http2_实战 | Python使用HTTP2实现苹果原生推送
  18. 火绒安全推出首款Mac产品 提速布局Mac终端安全领域
  19. jquey javascript 绑定点击事件(click事件无反应,因js获取不到当前的点击项)
  20. (四) l立创EDA之封装库的创建

热门文章

  1. operands could not be broadcast together with remapped shapes
  2. 一篇编译内核的详细配置文章[3]
  3. VIN码识别-汽修行业新技术
  4. TBase数据库开源后重磅升级,复杂查询性能最高提升十倍
  5. spss和python哪个好用_数据分析5大软件PK,你最爱哪个?
  6. 勘探重力实验matlab,MATLAB在重力图制作中的应用
  7. 科幻.后现代.后人类
  8. mp4v2再学习 -- Linux 下安装说明
  9. 高级变量类型-------列表
  10. 【python】 爬取网易云音乐 专辑图片+歌词