SpringBoot 小白--3(統(tǒng)一異常處理)
標(biāo)簽:
SpringBoot
1. 统一异常处理配置
package com.yangxz.response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 统一异常处理
*/
@ControllerAdvice
public class GlobalExceptionHandlerAdvice {
Logger logger = LoggerFactory.getLogger(GlobalExceptionHandlerAdvice.class);
@ExceptionHandler(value = Exception.class)
@ResponseBody
public R exceptionHandler(HttpServletRequest request, HttpServletResponse response, Exception exception) {
logger.info("异常类型:" + exception.getClass().getSimpleName());
String msg = "出错了。。。";
String data = null;
/*根据异常类型,设置不同的数据*/
if (exception instanceof DuplicateKeyException) {
data = "字段冲突";
// response.setStatus(404);
}
return R.error().message(msg).data(data);
}
}2. userController添加用户新增接口
package com.yangxz.controller;
import com.yangxz.dto.UserDTO;
import com.yangxz.entity.User;
import com.yangxz.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author yangxz
* @since 2022-06-30
*/
@Api(tags = "用户管理")
@RestController
@RequestMapping("/user")
public class UserController {
@Resource
private UserService userService;
@ApiOperation("用户列表")
@GetMapping("/list")
public List<User> list() {
return userService.list();
}
@ApiOperation("用户新增")
@PostMapping("/add")
public String add(@RequestBody UserDTO.AddDTO dto) {
User user = new User();
user.setUsername(dto.getUsername());
user.setPassword(dto.getPassword());
return userService.save(user) ? "新增成功" : "新增失败";
}
}3. 新增用户新增请求体
package com.yangxz.dto;
import lombok.Data;
@Data
public class UserDTO {
@Data
public static class AddDTO{
private String username;
private String password;
}
}4. 测试用户新增接口
user表中对username设置了唯一索引,插入相同的数据就会报错,数据库中已经有一条admin的记录
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得
100積分直接送
付費(fèi)專(zhuān)欄免費(fèi)學(xué)
大額優(yōu)惠券免費(fèi)領(lǐng)

