@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 @   习惯沉淀  阅读(368)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2018-02-28 IntelliJ IDEA使用教程 (总目录篇)
点击右上角即可分享
微信分享提示