spring web PostMapping ,RequestMapping, 全局日志

注解来自于 spring-web-5.3.21.jar

例子1

复制代码
@RestController
@RequestMapping("/v1/alg")
public class AlgController {

@PostMapping(value = "/task/{taskNo}", produces = "application/json; charset=utf-8")

@ResponseBody

public BaseRep<Boolean> insertTaskResult(

@PathVariable @NotBlank String taskNo,

@RequestBody Object result) {

例子2

@Controller

@RequestMapping("")

public class GatewayController {

@RequestMapping(value = "/proxy", method = { RequestMethod.GET,

RequestMethod.POST }, produces = "application/json; charset=utf-8")

@ResponseBody

@SkipXss

public BaseResponse<Object> proxy(@RequestParam(value = "facade") String facade,

@RequestParam(value = "method") String method,

@RequestParam(value = "paramJson") String paramJson,

@RequestParam(value = "env") String env) {

get发送的时候 ,可以在body里填数据么?

全局监控

复制代码
@ControllerAdvice
public class GlobalExceptionHandler {
    private static final Logger LOGGER = LoggerFactory.getLogger(GlobalExceptionHandler.class);


    /**
     * 处理自定义的业务异常
     * @param req
     * @param e
     * @return
     */
    @ExceptionHandler(value = BizException.class)
    @ResponseBody
    public BaseRep bizExceptionHandler(HttpServletRequest req, BizException e){
        LogUtil.error(LOGGER,e,"发生异常!BizException,code="+e.getErrorEnum()+",msg="+e.getMessage());
        BaseRep baseRep = new BaseRep();
        baseRep.setSuccess(false);
        baseRep.setResultCode(e.getErrorEnum().getCode());
        baseRep.setResultMessage(e.getErrorEnum().getDesc());
        return baseRep;
    }

    /**
     * 处理其他异常
     * @param req
     * @param e
     * @return
     */
    @ExceptionHandler(value = Throwable.class)
    @ResponseBody
    public BaseRep exceptionHandler(HttpServletRequest req, Throwable e) throws IOException {
        LogUtil.error(LOGGER,e,"异常!Throwable,req="+req.getRequestURL()+",input="+req.getInputStream()+",msg="+e.getMessage());
       
相关推荐
老黑5 分钟前
开源工具 AIDA:给 AI 辅助开发加一个数据采集层,让 AI 从错误中自动学习(Glama 3A 认证)
前端·react.js·ai·nodejs·cursor·vibe coding·claude code
jessecyj20 分钟前
Spring boot整合quartz方法
java·前端·spring boot
苦瓜小生32 分钟前
【前端】|【js手撕】经典高频面试题:手写实现function.call、apply、bind
java·前端·javascript
天若有情67339 分钟前
前端HTML精讲03:页面性能优化+懒加载,搞定首屏加速
前端·性能优化·html
踩着两条虫1 小时前
AI驱动的Vue3应用开发平台深入探究(十):物料系统之内置组件库
android·前端·vue.js·人工智能·低代码·系统架构·rxjava
NGC_66111 小时前
Java 线程池:execute () 和 submit () 到底有什么区别?
java
cngm1101 小时前
解决麒麟v10下tomcat无法自动启动的问题
java·tomcat
色空大师1 小时前
【网站搭建实操(一)环境部署】
java·linux·数据库·mysql·网站搭建
swipe1 小时前
AI 应用里的 Memory,不是“保存聊天记录”,而是管理上下文预算
前端·llm·agent
客卿1231 小时前
牛客刷题--找数字-- 字符串检测-字符串 双指针
java·开发语言