zoukankan      html  css  js  c++  java
  • @ControllerAdvice注解

    @ControllerAdvice注解的三种应用场景

    全局异常处理

    全局数据绑定

    步骤一:

    package com.xgcd.lab.aop.controllerAdvice;
    
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ModelAttribute;
    
    import java.util.HashMap;
    import java.util.Map;
    
    @ControllerAdvice
    public class GlobalDataHandler {
        /*@ModelAttribute里的value-“info”:指的是返回数据的 key ;
        方法返回值是 返回数据的value。*/
        @ModelAttribute(value = "info")
        public Map<String, Object> globalHadler() {
            HashMap<String, Object> map = new HashMap<>();
            map.put("name", "习惯沉淀");
            map.put("address", "北京");
            return map;
        }
    }

    @ModelAttribute里的value-“info”:指的是返回数据的 key ;

    方法返回值是 返回数据的value。

    此时在任意请求的 Controller 中,通过方法参数中的 Model 都可以获取 info 的数据。

    步骤二:

    package com.xgcd.lab.controller;
    
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    @RestController
    @RequestMapping("/globalDataBind")
    public class GlobalDataBindController {
    
        @GetMapping("/globalData")
        public String globalData(Model model) {
            Map<String, Object> map = model.asMap();
            Set<String> keySet = map.keySet();
            Iterator<String> iterator = keySet.iterator();
            String globalDataBindResult = "";
            while (iterator.hasNext()) {
                String key = iterator.next();
                globalDataBindResult = " key 是:" + key + " value 是 :" + map.get(key);
            }
            return "@ControllerAdvice全局数据绑定" + globalDataBindResult;
        }
    }

    全局数据预处理

    感谢

    https://blog.csdn.net/Kevin__Coder/article/details/104505081

    https://www.cnblogs.com/lenve/p/10748453.html


    作者:习惯沉淀

    如果文中有误或对本文有不同的见解,欢迎在评论区留言。

    如果觉得文章对你有帮助,请点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!

    扫码关注一线码农的学习见闻与思考。

    回复"大数据","微服务","架构师","面试总结",获取更多学习资源!
  • 相关阅读:
    nginx rewrite 模块
    nginx 的请求处理流程
    nginx keepalive 长连接
    cglib、orika、spring等bean copy工具性能测试和原理分析
    jackson、fastjson、kryo、protostuff等序列化工具性能对比
    Java源码详解系列(十一)--Spring的使用和源码(共计4篇博客)
    Spring源码系列(四)--spring-aop是如何设计的
    Spring源码系列(三)--spring-aop的基础组件、架构和使用
    JMH--一款由OpenJDK开发的基准测试工具
    MySQL系列文章汇总
  • 原文地址:https://www.cnblogs.com/yadongliang/p/14460619.html
Copyright © 2011-2022 走看看