文章目录

  • 1.项目的总体说明
    • 1.1项目的功能模块说明
    • 1.2项目设计的技术
  • 2创建一个名为guli的springboot的父项目
  • 3. 在guli的项目下创建一个子模块common用于公共使用的模块
    • 3.1. 依赖为
    • 3.2. 在common的模块下创建一个common_utils的模块,用于基本工具类
    • 3.3. 在common_utils莫模块下创建一个result的包,用来返回统一处理好的结果集,便于前端处理
  • 4.在common模块下创建一个名为server_base的模块,用于基本配置
    • 4.1依赖
    • 4.2 swagger配置
    • 4.3异常处理
    • 4.4自动填充
  • 5. 服务模块的创建
    • 5.1在guli模块下新建一个名为service的模块,用于服务管理
    • 5.2 在service模块下创建service_edu模块
      • 5.2.1依赖
      • 5.2.2yml配置

1.项目的总体说明

1.1项目的功能模块说明

  1. 后台系统(管理员使用)
  • 讲师管理模块
  • 课程分类管理模块
  • 课程管理模块
  • 统计分析管理
  • 订单管理
  • banner管理
  • 权限管理
  1. 系统前台
  • 首页数据显示
  • 讲师列表和详情
  • 课程列表和课程详情
  • 登录和注册功能
  • 微信扫描登录
  • 微信扫描支付

1.2项目设计的技术

  1. 后端技术
    springboot
    springcloud
    MybatisPlus
    spring security
    redis
    maven
    easyExcel
    jwt

  2. 前端技术
    vue
    element-ui
    axios
    nodejs

  3. 其他技术
    阿里云oss
    阿里云视频点播服务
    阿里云短信服务
    微信支付和登录
    docker
    Jenkins
    git

2创建一个名为guli的springboot的父项目

注意字符模块之间的关系
相关依赖

<?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.5.3</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.blb</groupId><artifactId>guli</artifactId><version>0.0.1-SNAPSHOT</version><name>guli</name><packaging>pom</packaging><description>guli</description>
<!--    版本控制--><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>--><swagger.version>2.9.2</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><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><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

3. 在guli的项目下创建一个子模块common用于公共使用的模块

3.1. 依赖为

<?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><parent><groupId>com.blb</groupId><artifactId>guli</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><modules><module>server_base</module><module>common_utils</module></modules><groupId>com.blb</groupId><artifactId>common</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><name>common</name><description>common</description><properties><java.version>1.8</java.version></properties><dependencies>
<!--        <dependency>-->
<!--            <groupId>com.blb</groupId>-->
<!--            <artifactId>common_utils</artifactId>-->
<!--            <version>0.0.1-SNAPSHOT</version>-->
<!--        </dependency>--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><scope>provided </scope></dependency><!--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><!-- redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- spring2.X集成redis所需common-pool2<dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>2.6.0</version></dependency>--></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

3.2. 在common的模块下创建一个common_utils的模块,用于基本工具类

依赖为 :

<?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><parent><groupId>com.blb</groupId><artifactId>common</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.blb</groupId><artifactId>common_utils</artifactId><version>0.0.1-SNAPSHOT</version><name>common_utils</name><description>common_utils</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>com.blb</groupId><artifactId>common</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency>
<!--        <dependency>-->
<!--            <groupId>org.projectlombok</groupId>-->
<!--            <artifactId>lombok</artifactId>-->
<!--&lt;!&ndash;            <scope>provided </scope>&ndash;&gt;-->
<!--        </dependency>--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

3.3. 在common_utils莫模块下创建一个result的包,用来返回统一处理好的结果集,便于前端处理

在此包下创建一个名为Rest的类 用于封装结果集

package com.blb.common_utils.result;import io.swagger.annotations.ApiModelProperty;
import lombok.Data;import java.util.HashMap;
import java.util.Map;@Data
public class Res {@ApiModelProperty(value = "是否成功")private Boolean success;@ApiModelProperty(value = "返回码")private Integer code;@ApiModelProperty(value = "返回消息")private String message;@ApiModelProperty(value = "返回数据")private Map<String,Object> data=new HashMap<String,Object>();private Res(){}//成功的静态方法public static Res ok(){Res res =new Res();res.setSuccess(true);res.setCode(ResCode.SUCCESS);res.setMessage("成功");return res;}//失败的静态方法public static Res error(){Res res =new Res();res.setCode(ResCode.ERROR);res.setSuccess(false);res.setMessage("失败");return res;}public Res success(Boolean success){this.setSuccess(success);return this;}public Res message(String message){this.setMessage(message);return this;}public Res code(Integer code){this.setCode(code);return this;}public Res data(Map<String,Object> map){this.setData(map);return this;}}

创建一个名为Rescode的类用于确定状态码

package com.blb.common_utils.result;public interface ResCode {public static Integer SUCCESS =20000;public static Integer ERROR =20001;
}

4.在common模块下创建一个名为server_base的模块,用于基本配置

4.1依赖

<?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><parent><groupId>com.blb</groupId><artifactId>common</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.blb</groupId><artifactId>server_base</artifactId><version>0.0.1-SNAPSHOT</version><name>server_base</name><description>server_base</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>com.blb</groupId><artifactId>common_utils</artifactId><version>0.0.1-SNAPSHOT</version></dependency><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><dependency><groupId>com.blb</groupId><artifactId>common_utils</artifactId><version>0.0.1-SNAPSHOT</version><scope>compile</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

4.2 swagger配置

server_base模块下创建创建一个SwaggerConfig的类

package com.blb.server_base.config;import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration//配置类
@EnableSwagger2 //swagger注解
public class SwaggerConfig {@Beanpublic Docket webApiConfig(){return new Docket(DocumentationType.SWAGGER_2).groupName("webApi").apiInfo(webApiInfo()).select().paths(Predicates.not(PathSelectors.regex("/admin/.*"))).paths(Predicates.not(PathSelectors.regex("/error.*"))).build();}private ApiInfo webApiInfo(){return new ApiInfoBuilder().title("网站-课程中心API文档").description("本文档描述了课程中心微服务接口定义").version("1.0").contact(new Contact("java", "http://atguigu.com", "1123@qq.com")).build();}}

4.3异常处理

创建一个GlobalExceptionHandler的类

package com.blb.server_base.exceptionhandler;import com.blb.common_utils.result.Res;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;@ControllerAdvice
public class GlobalExceptionHandler {//指定出现何种异常执行此方法@ExceptionHandler(Exception.class)@ResponseBodypublic Res error(Exception e){e.printStackTrace();return Res.error().message("这里出现了异常");}
}

4.4自动填充

创建一个MetaObjectHandler的类

package com.blb.server_base.handle;import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;import java.util.Date;@Component
public class MyMetaObjectHandier  implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {//属性名称不是字段名称this.setFieldValByName("gmtCreate",new Date(),metaObject);this.setFieldValByName("gmtModified",new Date(),metaObject);}@Overridepublic void updateFill(MetaObject metaObject) {this.setFieldValByName("gmtModified",new Date(),metaObject);}
}

5. 服务模块的创建

5.1在guli模块下新建一个名为service的模块,用于服务管理

依赖

<?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><parent><groupId>com.blb</groupId><artifactId>guli</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><modules><module>service_edu</module></modules><groupId>com.blb</groupId><artifactId>service</artifactId><version>0.0.1-SNAPSHOT</version><name>service</name><packaging>pom</packaging><description>service</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>com.blb</groupId><artifactId>server_base</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>com.blb</groupId><artifactId>common_utils</artifactId><version>0.0.1-SNAPSHOT</version></dependency><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><!--<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId></dependency>--><!--hystrix依赖,主要是用  @HystrixCommand --><!--<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency>--><!--服务注册--><!-- <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>--><!--服务调用--><!-- <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId></dependency><!--swagger--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId></dependency><!--lombok用来简化实体类:需要安装lombok插件--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--xls--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId></dependency><!--httpclient--><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId></dependency><!--commons-io--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId></dependency><!--gson--><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

5.2 在service模块下创建service_edu模块

5.2.1依赖

<?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><parent><groupId>com.blb</groupId><artifactId>guli</artifactId><version>0.0.1-SNAPSHOT</version><relativePath/> <!-- lookup parent from repository --></parent><modules><module>service_edu</module></modules><groupId>com.blb</groupId><artifactId>service</artifactId><version>0.0.1-SNAPSHOT</version><name>service</name><packaging>pom</packaging><description>service</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>com.blb</groupId><artifactId>server_base</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>com.blb</groupId><artifactId>common_utils</artifactId><version>0.0.1-SNAPSHOT</version></dependency><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><!--<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId></dependency>--><!--hystrix依赖,主要是用  @HystrixCommand --><!--<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId></dependency>--><!--服务注册--><!-- <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>--><!--服务调用--><!-- <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 --><dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId></dependency><!--swagger--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId></dependency><!--lombok用来简化实体类:需要安装lombok插件--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--xls--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId></dependency><!--httpclient--><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId></dependency><!--commons-io--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId></dependency><!--gson--><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

5.2.2yml配置

  1. 创建一个名为鼓励的数据库
  2. 创建数据库
CREATE TABLE `edu_teacher` (`id` char(19) NOT NULL COMMENT '讲师ID',`name` varchar(20) NOT NULL COMMENT '讲师姓名',`intro` varchar(500) NOT NULL DEFAULT '' COMMENT '讲师简介',`career` varchar(500) DEFAULT NULL COMMENT '讲师资历,一句话说明讲师',`level` int(10) unsigned NOT NULL COMMENT '头衔 1高级讲师 2首席讲师',`avatar` varchar(255) DEFAULT NULL COMMENT '讲师头像',`sort` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '排序',`is_deleted` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '逻辑删除 1(true)已删除, 0(false)未删除',`gmt_create` datetime NOT NULL COMMENT '创建时间',`gmt_modified` datetime NOT NULL COMMENT '更新时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='讲师';#
# Data for table "edu_teacher"
#INSERT INTO `edu_teacher` VALUES ('1','张三','近年主持国家自然科学基金(6项)、江苏省重大科技成果转化项目(5项)、江苏省产学研前瞻性联合研究项目(3项)、省工业科技支撑、省高技术、省自然科学基金等省部级及其企业的主要科研项目40多个,多个项目在企业成功转化,产生了较好的经济、社会和环境效益。积极开展产学研科技合作,并与省内16家企业建立了江苏省研究生工作站,其中6家为江苏省优秀研究生工作站','高级',1,'https://guli-file-190513.oss-cn-beijing.aliyuncs.com/avatar/default.jpg',0,0,'2019-10-30 14:18:46','2019-11-12 13:36:36'),('1189389726308478977','晴天','高级讲师简介','高级讲师资历',2,'https://online-teach-file.oss-cn-beijing.aliyuncs.com/teacher/2019/10/30/de47ee9b-7fec-43c5-8173-13c5f7f689b2.png',1,0,'2019-10-30 11:53:03','2019-10-30 11:53:03'),('1189390295668469762','李刚','高级讲师简介','高级讲师',2,'https://online-teach-file.oss-cn-beijing.aliyuncs.com/teacher/2019/10/30/b8aa36a2-db50-4eca-a6e3-cc6e608355e0.png',2,0,'2019-10-30 11:55:19','2019-11-12 13:37:52'),('1189426437876985857','王二','高级讲师简介','高级讲师',1,'https://online-teach-file.oss-cn-beijing.aliyuncs.com/teacher/2019/11/08/e44a2e92-2421-4ea3-bb49-46f2ec96ef88.png',0,0,'2019-10-30 14:18:56','2019-11-12 13:37:35'),('1189426464967995393','王五','高级讲师简介','高级讲师',1,'https://online-teach-file.oss-cn-beijing.aliyuncs.com/teacher/2019/10/30/65423f14-49a9-4092-baf5-6d0ef9686a85.png',0,0,'2019-10-30 14:19:02','2019-11-12 13:37:18'),('1192249914833055746','李四','高级讲师简介','高级讲师',1,'https://online-teach-file.oss-cn-beijing.aliyuncs.com/teacher/2019/11/07/91871e25-fd83-4af6-845f-ea8d471d825d.png',0,0,'2019-11-07 09:18:25','2019-11-12 13:37:01'),('1192327476087115778','1222-12-12','1111','11',1,'https://online-teach-file.oss-cn-beijing.aliyuncs.com/teacher/2019/11/08/5805c6cd-c8ad-4a77-aafd-d2e083bfd8a4.png',0,1,'2019-11-07 14:26:37','2019-11-11 16:26:26'),('1195337453429129218','test','sdfsdf','sdfdf',1,'https://guli-file-190513.oss-cn-beijing.aliyuncs.com/avatar/default.jpg',0,1,'2019-11-15 21:47:12','2019-11-15 21:47:27');
  1. 写yml
# ????
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=root#??json?????
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8#mybatis??
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
  1. 代码生成器
package com.blb.demo;import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.jupiter.api.Test;/*** @author* @since 2018/12/13*/
public class CodeGenerator {@Testpublic void run() {// 1、创建代码生成器AutoGenerator mpg = new AutoGenerator();// 2、全局配置GlobalConfig gc = new GlobalConfig();String projectPath = System.getProperty("user.dir");gc.setOutputDir("D:\\study-spring-boot\\guli\\service\\service_edu"+ "/src/main/java");gc.setAuthor("testjava");//作者gc.setOpen(false); //生成后是否打开资源管理器gc.setFileOverride(false); //重新生成时文件是否覆盖gc.setServiceName("%sService");   //去掉Service接口的首字母Igc.setIdType(IdType.ID_WORKER); //主键策略gc.setDateType(DateType.ONLY_DATE);//定义生成的实体类中日期类型gc.setSwagger2(true);//开启Swagger2模式mpg.setGlobalConfig(gc);// 3、数据源配置DataSourceConfig dsc = new DataSourceConfig();dsc.setUrl("jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8");dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername("root");dsc.setPassword("199866");dsc.setDbType(DbType.MYSQL);mpg.setDataSource(dsc);// 4、包配置PackageConfig pc = new PackageConfig();pc.setModuleName("eduServer"); //模块名pc.setParent("com.blb");pc.setController("controller");pc.setEntity("domain");pc.setService("service");pc.setMapper("mapper");mpg.setPackageInfo(pc);// 5、策略配置StrategyConfig strategy = new StrategyConfig();strategy.setInclude("edu_teacher");strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体时去掉表前缀strategy.setColumnNaming(NamingStrategy.underline_to_camel);//数据库表字段映射到实体的命名策略strategy.setEntityLombokModel(true); // lombok 模型 @Accessors(chain = true) setter链式操作strategy.setRestControllerStyle(true); //restful api风格控制器strategy.setControllerMappingHyphenStyle(true); //url中驼峰转连字符mpg.setStrategy(strategy);// 6、执行mpg.execute();}
}

执行后自动生成代码
5. 讲师管理的编写

package com.blb.eduservice.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.blb.common_utils.result.Res;
import com.blb.eduservice.domain.EduTeacher;
import com.blb.eduservice.domain.vo.TeacherQuery;
import com.blb.eduservice.service.EduTeacherService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.HashMap;
import java.util.List;/*** <p>* 讲师 前端控制器* </p>** @author testjava* @since 2020-02-24*/
@RestController
@RequestMapping("/eduservice/teacher")
@Api(tags = "讲师管理")
public class EduTeacherController {//访问地址: http://localhost:8001/eduservice/teacher/findAll//把service注入@Autowiredprivate EduTeacherService teacherService;//1 查询讲师表所有数据//rest风格@ApiOperation("查询所有讲师")@GetMapping("findAll")public Res findAllTeacher() {//调用service的方法实现查询所有的操作List<EduTeacher> list = teacherService.list(null);HashMap<String, Object> stringObjectHashMap = new HashMap<>();stringObjectHashMap.put("teacherList",list);return Res.ok().data(stringObjectHashMap);}//2 逻辑删除讲师的方法@DeleteMapping("{id}")@ApiOperation("逻辑删除讲师")public Res removeTeacher(@ApiParam(name = "id",value = "讲师id",required = true) @PathVariable String id) {boolean flag = teacherService.removeById(id);System.out.println(flag);if(flag){return Res.ok();}else {return Res.error();}}//分页查询的方法@ApiOperation("分页查询")@GetMapping("pageTeacher/{current}/{limit}")public Res pageListTeacher(@PathVariable long current,@PathVariable long limit){Page<EduTeacher> page=new Page<>(current,limit);teacherService.page(page,null);long total = page.getTotal();//获得总记录数List<EduTeacher> records = page.getRecords();//数据的list集合HashMap<String, Object> hashMap = new HashMap<>();hashMap.put("total",total);hashMap.put("record",records);return Res.ok().data(hashMap);}@PostMapping("/pageTeacherCondition/{current}/{limit}")@ApiOperation("条件分页查询")public Res pageTeacherCondition(@PathVariable long current, @PathVariable long limit,@RequestBody(required = false)  TeacherQuery teacherQuery){Page<EduTeacher> teacherPage=new Page<>(current,limit);QueryWrapper<EduTeacher> queryWrapper=new QueryWrapper<>();if(!StringUtils.isEmpty(teacherQuery.getName())){queryWrapper.like("name",teacherQuery.getName());}if(teacherQuery.getLevel()!=null){queryWrapper.eq("level",teacherQuery.getLevel());}teacherService.page(teacherPage,queryWrapper);//总记录数long total = teacherPage.getTotal();//数据的集合List<EduTeacher> records = teacherPage.getRecords();HashMap<String, Object> hashMap = new HashMap<>();hashMap.put("total",total);hashMap.put("record",records);return Res.ok().data(hashMap);}@PostMapping("/addTeacher")@ApiOperation("添加讲师")public Res addTeacher(@RequestBody EduTeacher eduTeacher){boolean save = teacherService.save(eduTeacher);if(save){return Res.ok();}else{return Res.error();}}@GetMapping("/getTeacher/{id}")@ApiOperation("根据id查找讲师信息")public Res getTeacher(@PathVariable String id){EduTeacher eduTeacher = teacherService.getById(id);HashMap<String, Object> hashMap = new HashMap<>();hashMap.put("eduTeacher",eduTeacher);return Res.ok().data(hashMap);}@PostMapping("/updateEduTeacher")@ApiOperation("修改讲师的信息")public Res updateEduTeacher(@RequestBody EduTeacher eduTeacher){boolean b = teacherService.updateById(eduTeacher);if(b){return Res.ok();}else{return Res.error();}}}

今天的笔记就更新在这里了,后面会持续更新,感谢您的关注

尚硅谷在线教育一:尚硅谷在线教育相关的基本搭建配置以及讲师管理模块相关推荐

  1. 在线教育_Day05-项目讲师管理模块前端开发

    一.vue-element-admin 1.1 简介 vueAdmin-template是基于vue-element-admin的一套后台管理系统基础模板(最少精简版),可作为模板进行二次开发. 功能 ...

  2. 运营级在线客服/来客客服/带非常完整的搭建教程/带评价管理

    介绍 [淘宝买的,亲测分享,可直接运营使用,测试没有错误,多看说明文档!附带安装教程说明] 来客php在线客服系统,新添加了手机端客服对话,修复诸多BUG,比如:用户发送图片无法接收等问题,更新到20 ...

  3. 在线教育_Day02-_项目环境搭建和讲师管理接口开发

    一.数据库设计 1.1 创建数据库 创建数据库:自定义数据库名 1.2 创建数据表 导入资料中的 gl_edu.sql文件,创建表 1.3 数据库设计规约 以下规约只针对本模块,更全面的文档参考< ...

  4. (硅谷课堂项目)Java开发笔记2:项目概述,搭建项目环境和开发讲师管理接口

    文章目录 (硅谷课堂项目)Java开发笔记2:项目概述,搭建项目环境和开发讲师管理接口 1.项目概述 1.1 项目介绍 1.2 硅谷课程流程图 1.3 硅谷课堂功能架构 1.4 硅谷课堂技术架构 1. ...

  5. 微服务项目实战技术点汇总:“尚硅谷的谷粒在线教育” 一、教师管理模块

    文章目录 一.创建数据库和表(我们这里只使用edu_teacher表) 二.环境搭建 1.父工程 2.子模块service,当做api接口服务父节点 3.创建service的子模块service-ed ...

  6. 尚硅谷Docker实战教程-笔记02【安装docker、镜像加速器配置】

    尚硅谷大数据技术-教程-学习路线-笔记汇总表[课程资料下载] 视频地址:尚硅谷Docker实战教程(docker教程天花板)_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01[理念简介 ...

  7. 教育机构如何提升在线教育技术能力? | 云+社区技术沙龙

    教育机构如何提升在线教育技术能力? 如何给用户稳定.清晰流畅的在线互动体验? AI和大数据的发展会给行业带来哪些变革? 腾讯云结合自身优势,从在线教育的业务营销.教学业务应用与管理方面助力行业合伙发展 ...

  8. 在线教育直播系统 一对一在线直播平台解决方案

    在线教育直播系统 一对一在线直播平台解决方案 在线教育直播系统功能模块 在线教育直播系统讲师端功能 在线教育直播系统学生端功能 一对一在线教育系统功能介绍 一对一在线教育系统优势 在线教育直播系统功能 ...

  9. 下面哪项属于计算机在教育教学中的应用,东师现代教育技术18秋在线作业2答案...

    现代教育技术18秋在线作业2-0005 试卷总分:100    得分:0 一. 单选题 (共 10 道试题,共 25 分) 1.不仅具有路由的功能,而且能对两个网络段中使用不同传输协议的数据进行互相的 ...

最新文章

  1. 百度地图坐标系相关学习总结
  2. python爬虫爬取网页图片_Python爬虫实现抓取网页图片
  3. find_all 返回空 python_python小课堂23 - 正则表达式(一)
  4. The superclass javax.servlet.http.HttpServlet was not found on the Java Build
  5. vuex状态持久化_Vuex持久化存储之vuex-persist
  6. 一、RequireHttps
  7. 06.【Axure 10 】Mac系统软件汉化
  8. 从0开始学心电信号处理(1)——心电信号的读取
  9. SCDM学习笔记(1)
  10. 网络安全[脚本小子] -- SSI注入
  11. php自学多久可以上岗,自学php多久能找工作,PHP要自学多久才能找到工作
  12. [转]WIN7服务一些优化方法
  13. 7-154 置点不动产——认真学习,努力工作买买房子吧
  14. 极光短信验证码的集成过程
  15. 计算机组成原理 或的微指令,微指令
  16. idea @Autowired 飘红
  17. 弹幕穿人过,视频换背景,快准狠的图像分割技术了解一下
  18. nas linux手机照片备份,本身着手,组建简洁好用的NAS!(存储同步篇)
  19. 手机端没有好的录屏软件?地表最强移动端录屏软件了解一下?
  20. 【Lesson 13】万能和弦和弦走向

热门文章

  1. 606. 根据二叉树创建字符串C++
  2. Ubuntu安装Anaconda详细步骤(Ubuntu21.10,Anaconda3)
  3. JavaScript video标签使用
  4. Unity3D个人版更换黑色皮肤
  5. 教你玩Robocode(1)
  6. 徽章合成功能(类似支付宝集五福)
  7. origin Pro 9.0画多条三维折线图(此处以两条为例)
  8. CSS文件引入另一个CSS文件
  9. 弘辽科技:如何拉免费流量的几个小妙招 。
  10. wechat-0050,微信公众号,带参数的二维码获取与扫码事件推送