onLineStudySys项目开发过程
创建父工程maven工程
删除src等多余目录
更改仓库位置


修改pom文件 标识父工程
1 <packaging>pom</packaging>
目录结构

父工程依赖

导入数据库

创建application.yml配置文件

创建启动类
1 @SpringBootApplication 2 public class EduApplication { 3 4 public static void main(String[] args) { 5 SpringApplication.run(EduApplication.class, args); 6 } 7 }
整合MP代码生成器





创建配置类
1 @Configuration 2 @EnableTransactionManagement 3 @MapperScan("com.atguigu.eduservice.mapper") 4 public class MyBatisPlusConfig { 5 }
编写测试


修改时间显示格式
1 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss 2 spring.jackson.time-zone=GMT+8

封装swagger2

swaggerConfig.class
1 @Configuration 2 @EnableSwagger2 3 public class SwaggerConfig { 4 @Bean 5 public Docket webApiConfig(){ 6 7 return new Docket(DocumentationType.SWAGGER_2) 8 .groupName("webApi") 9 .apiInfo(webApiInfo()) 10 .select() 11 .paths(Predicates.not(PathSelectors.regex("/admin/.*"))) //不暴露超级用户接口信息 12 .paths(Predicates.not(PathSelectors.regex("/error.*"))) 13 .build(); 14 15 } 16 17 private ApiInfo webApiInfo(){ 18 19 return new ApiInfoBuilder() 20 .title("网站-课程中心API文档") 21 .description("本文档描述了课程中心微服务接口定义") 22 .version("1.0") 23 .contact(new Contact("Hello", "http://xxx.com", "12345678@qq.com")) 24 .build(); 25 } 26 27 28 }
在service模块下引入依赖
1 <dependency> 2 <groupId>org.husong</groupId> 3 <artifactId>service_base</artifactId> 4 <version>V-1.0</version> 5 </dependency>
添加注解扫描包

测试一下


http://localhost:8001/swagger-ui.html
分页获取

1 @ApiOperation(value = "分页获取讲师列表") 2 @PostMapping("getTeacherPage/{current}/{limit}") 3 public R getTeacherPage(@PathVariable Long current, 4 @PathVariable Long limit, 5 @RequestBody TeacherQuery teacherQuery){ 6 String name = teacherQuery.getName(); 7 Integer level = teacherQuery.getLevel(); 8 String begin = teacherQuery.getBegin(); 9 String end = teacherQuery.getEnd(); 10 QueryWrapper<EduTeacher> wrapper = new QueryWrapper<>(); 11 if(!StringUtils.isEmpty(name)){ 12 wrapper.like("name",name); //第一个name是数据库字段名 13 } 14 if(!StringUtils.isEmpty(level)){ 15 wrapper.eq("level",level); //第一个level是数据库字段名 16 } 17 if(!StringUtils.isEmpty(begin)){ 18 wrapper.ge("gmt_create",begin); //第一个gmt_create是数据库字段名 19 } 20 if(!StringUtils.isEmpty(end)){ 21 wrapper.le("gmt_create",end); //第一个gmt_create是数据库字段名 22 } 23 Page<EduTeacher> page = new Page<>(current,limit); 24 eduTeacherService.page(page,wrapper); 25 List<EduTeacher> list = page.getRecords(); 26 long total = page.getTotal(); 27 Map<String,Object> map = new HashMap<>(); 28 map.put("list",list); 29 map.put("total",total); 30 return R.ok().data(map); 31 }
结果封装

1 @Data 2 public class R { 3 @ApiModelProperty(value = "是否成功") 4 private Boolean success; 5 6 @ApiModelProperty(value = "返回码") 7 private Integer code; 8 9 @ApiModelProperty(value = "返回消息") 10 private String message; 11 12 @ApiModelProperty(value = "返回数据") 13 private Map<String, Object> data = new HashMap<String, Object>(); 14 15 private R(){} 16 17 public static R ok(){ 18 R r = new R(); 19 r.setSuccess(true); 20 r.setCode(ResultCode.SUCCESS); 21 r.setMessage("成功"); 22 return r; 23 } 24 25 public static R error(){ 26 R r = new R(); 27 r.setSuccess(false); 28 r.setCode(ResultCode.ERROR); 29 r.setMessage("失败"); 30 return r; 31 } 32 33 public R success(Boolean success){ 34 this.setSuccess(success); 35 return this; 36 } 37 38 public R message(String message){ 39 this.setMessage(message); 40 return this; 41 } 42 43 public R code(Integer code){ 44 this.setCode(code); 45 return this; 46 } 47 48 public R data(String key, Object value){ 49 this.data.put(key, value); 50 return this; 51 } 52 53 public R data(Map<String, Object> map){ 54 this.setData(map); 55 return this; 56 } 57 58 }

统一异常处理

1 @Data 2 @AllArgsConstructor 3 @NoArgsConstructor 4 public class MyException extends RuntimeException{ 5 @ApiModelProperty("状态码") 6 private Integer code; 7 private String msg; 8 }
1 @ControllerAdvice //aop编程,不改变原有功能和代码,实现添加额外功能 2 public class GlobalExceptionHandler { 3 @ExceptionHandler(Exception.class) 4 @ResponseBody 5 public R error(Exception e){ 6 e.printStackTrace(); 7 return R.error(); 8 } 9 10 @ExceptionHandler(MyException.class) 11 @ResponseBody 12 public R error(MyException e){ 13 e.printStackTrace(); 14 return R.error().message(e.getMsg()).code(e.getCode()); 15 } 16 }


浙公网安备 33010602011771号