@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


作者:习惯沉淀

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

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

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

回复"大数据","微服务","架构师","面试总结",获取更多学习资源!
原文地址:https://www.cnblogs.com/yadongliang/p/14460619.html