数据返回
BaseResponseVO.java
@Data
public class BaseResponseVO<T> {
private Integer code; // 业务编号
private String message; // 异常信息
private T data; // 业务数据返回
private BaseResponseVO(){
}
// 成功但是无参数
public static BaseResponseVO success(){
BaseResponseVO response = new BaseResponseVO();
response.setCode(200);
response.setMessage("");
return response;
}
// 成功有参数
public static<T> BaseResponseVO success(M data){
BaseResponseVO response = new BaseResponseVO();
response.setCode(200);
response.setMessage("");
response.setData(data);
return response;
}
// 出现业务异常
public static<T> BaseResponseVO serviceException(CommonServiceException e){
BaseResponseVO response = new BaseResponseVO();
response.setCode(e.getCode());
response.setMessage(e.getMessage());
return response;
}
}
UserConrtoller.java
@RestController
@RequestMapping(value = "/user")
public class UserController {
@Autowired
private UserServiceAPI serviceAPI;
@RequestMapping(value = "/login",method = RequestMethod.POST)
public BaseResponseVO login(@RequestBody LoginReqVO reqVO) throws CommonServiceException {
// 数据验证
reqVO.checkParam();
// 验证用户名和密码是否正确
String userId = serviceAPI.checkUserLogin(reqVO.getUsername(),reqVO.getPassword());
JwtTokenUtil jwtTokenUtil = new JwtTokenUtil();
String randomKey = jwtTokenUtil.getRandomKey();
String token = jwtTokenUtil.generateToken(userId, randomKey);
// randomKey token
Map<String,String> result = new HashMap<>();
result.put("randomKey",randomKey);
result.put("token",token);
return BaseResponseVO.success(result);
}
}
异常处理
CommonServiceExceprion.java
@Data
public class CommonServiceException extends Exception{
private Integer code;
private String message;
public CommonServiceException(int code,String message){
this.code = code;
this.message = message;
}
}
BaseExceptionHandler.java
@Slf4j
@ControllerAdvice
public class BaseExceptionHandler {
@ExceptionHandler(CommonServiceException.class)
@ResponseBody
public BaseResponseVO serviceExceptionHandler(
HttpServletRequest request, CommonServiceException e){
log.error("CommonServiceException, code:{}, message",
e.getCode(),e.getMessage());
return BaseResponseVO.serviceException(e);
}
}