一、SpringBoot简介
创建新模块,选择Spring初始化,并配置模块相关基础信息
如果网速慢得朋友可以在2那个步骤下面打勾
输入 https://start.aliyun.com/网站创建
选择当前模块需要使用的技术集
需要啥就选择啥就行
然后开发控制器类
package com.aotain.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author zengFanLiang
* @version 1.1
*
*/
@SuppressWarnings("all")
@RestController
@RequestMapping("/Customal")
public class BookController {
@GetMapping("/{id}")
public String getBiId(@PathVariable Integer id){
System.out.println("id===>"+id);
return "hello spring boot!";
}
}
然后就是配置类了
自定义对象封装指定数据【常用】
如图所示
然后定义一个封装类
prefix里面得属性要和配置上得一致
导入了lombak依赖就可以不必到setergeter方法
直接打上 @Data
尝试运行试一下,如下图:
封装是ok的,只是飘红是idea显示问题,可以去除掉
,其实spring内置了一个封装类:封装全部数据到Environment对象
多环境开发配置
- properties文件多环境启动
#主启动配置文件 application.properties
spring.profiles.active=pro
#环境分类配置文件 application-pro.properties
server.port=80
#环境分类配置文件 application-dev.properties
server.port=81
#环境分类配置文件application-test.properties
server.port=82
3.2 多环境启动命令格式
- 带参数启动SpringBoot
-
- 带参数启动SpringBoot
java –jar springboot.jar --spring.profiles.active=test
java –jar springboot.jar --server.port=88
java –jar springboot.jar --server.port=88 --spring.profiles.active=test
- 参数加载优先顺序
3.3 多环境开发控制
Maven与SpringBoot多环境兼容(步骤)
①:Maven中设置多环境属性
<profiles>
<profile>
<id>dev_env</id>
<properties>
<profile.active>dev</profile.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>pro_env</id>
<properties>
<profile.active>pro</profile.active>
</properties>
</profile>
<profile>
<id>test_env</id>
<properties>
<profile.active>test</profile.active>
</properties>
</profile>
</profiles>
4 通用异常
4.1 什么是通用异常
目前的代码中如果发生系统异常,则直接会给用户抛出不友好的异常信息。
为了提高前后台用户的体验,并且系统本身很多的地方都会有一些业务相关的异常,需要统一进行捕获并进行返回给前端。springmvc为我们提供了几个注解 实现统一异常的捕获功能,根据不同的异常的类型进行不同的处理。
总结:
1.需要处理系统异常相关 未知的错误
2.需要处理自定义业务异常相关 已知的业务的错误。例如 商品获取不到,查询不到数据等。
全局异常处理
@RestControllerAdvice
@Slf4j(topic = "SYSTEM_ERROR")
public class GlobalExceptionHandler {
/**
* 处理未知异常
* @param e
* @return
*/
@ExceptionHandler(value = Throwable.class)
public ResultVo handleException(Throwable e){
log.error("系统异常",e);
return ResultVo.error();
}
/**
* 处理业务异常
* @param e
* @return
*/
@ExceptionHandler(value = LeadNewsException.class)
public ResultVo handleLeadNewsException(LeadNewsException e){
return ResultVo.bizError(e.getMessage());
}
/**
* 处理请求参数校验失败,返回友好提示
* @param e
* @return
*/
@ExceptionHandler(value = MethodArgumentNotValidException.class)
public ResultVo handleMethodArgumentNotValidException(MethodArgumentNotValidException e){
List<ObjectError> allErrors = e.getBindingResult().getAllErrors();
StringJoiner sj = new StringJoiner(";");
for (ObjectError error : allErrors) {
sj.add(error.getDefaultMessage());
}
return ResultVo.bizError(sj.toString());
}
}