一、工程结构介绍

1、工程结构

image.png

2、模块说明

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
image.png

配置:
groupId:com.atguigu
artifactId:guli-parent
一直下一步到完成
image.png

2、删除 src 目录

image.png

3、配置 pom.xml

修改版本为 :2.2.1.RELEASE
image.png

节点后面添加 pom类型

  1. <artifactId>guli-parent</artifactId>
  2. <packaging>pom</packaging>

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>

添加 确定依赖的版本


<properties>
    <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.7.0</jwt.version>

    <aliyun-java-sdk-core.version>4.3.3</aliyun-java-sdk-core.version>

    <aliyun-sdk-oss.version>3.1.0</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>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>

    <cloud-alibaba.version>0.2.2.RELEASE</cloud-alibaba.version>

</properties>

配置 锁定依赖的版本

<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 代码生成器需要 -->
       <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-->
       <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>


      <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>