• @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


    作者:习惯沉淀

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

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

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

    回复"大数据","微服务","架构师","面试总结",获取更多学习资源!
  • 相关阅读:
    《法老的宝藏》读后感 读书笔记
    《缘缘堂随笔》读后感 读书笔记
    Appium-Python3--UI自动化-[-3-]-元素定位-获取APP中的toast,判断该元素是否存在
    Appium-Python3--UI自动化-[-2-]-启动一款app演示
    Appium-python--UI自动化-[-1-]-环境搭建
    四十四、九九乘法表
    二十、接口测试汇总(二)
    Jenkins-[--5--]-启动时报错:consider increasing the maximum size of the cache. After eviction approximately [10,239] KB of data
    十九、RF接口测试汇总(一)
    十八、RF中selenium2library构造函数中参数解释
  • 原文地址:https://www.cnblogs.com/yadongliang/p/14460619.html
Copyright © 2020-2023  润新知