@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

posted @ 2021-02-28 21:19  习惯沉淀  阅读(356)  评论(0编辑  收藏  举报