Java阶段四Day06

news2024/12/22 22:34:26

Java阶段四Day06

文章目录

  • Java阶段四Day06
    • 关于配置响应内容中不包含Null的属性
    • 关于配置跨域
    • 关于如何不用添加@RequestBody也可以接收请求

关于配置响应内容中不包含Null的属性

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-euAFIJer-1686896257683)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230616110906972.png)]

响应内容中的null可以使用以下三种方式中的一种即可解决,且范围越小,越优先

  1. JsonResult中的对应属性添加注解

    @JsonInclude(JsonInclude.Include.NON_NULL)  // 在属性上配置
    private Object data;
    
  2. JsonResult类上添加注解

    @JsonInclude(JsonInclude.Include.NON_NULL)  // 在类上配置
    public class JsonResult {
    
  3. applicaiton.yml中配置

    # Spring的配置
    spring:
      # Jackson框架的配置
      jackson:
        # 默认包含什么样的属性,响应的JSON结果中默认包含什么样的属性
        default-property-inclusion: non_null  #范围越小,越优先
    

关于配置跨域

添加CorsConfig配置类

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Slf4j
@Configuration
public class CorsConfig implements WebMvcConfigurer {

    public CorsConfig(){
        log.info("开启 全局跨域...");
    }


    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")  //服务端的任何请求都在接下来的配置范围之内
            .allowedHeaders("*") //表示请求头中不管带什么都允许
            .allowedMethods("*")    //表示请求方式不管什么都允许
            //.allowedOrigins("*")   //表示客户端来自哪里都允许
            .allowedOriginPatterns("*")   //表示客户端来自哪里都允许  看版本选择上面还是这个
            .allowCredentials(true) //是否允许携带凭证
            .maxAge(3600); //有效时长,即第一次跨域访问检查有效后接下来的有效时长内不进行检查
    }
}

关于如何不用添加@RequestBody也可以接收请求

@ApiOperation("新增标签类别")
@ApiOperationSupport(order = 100)   // 增 1xx 删 2xx 改 3xx 查 4xx
@PostMapping("/add-new")
public JsonResult addNew(@RequestBody @Validated ContentTagTypeAddNewParam typeAddNewParam){
    log.info("开始处理【新增标签类别】请求,参数:{}",typeAddNewParam);
    tagService.addNew(typeAddNewParam);
    return JsonResult.ok();
}

使用@RequestBody将HTTP请求体中的内容绑定到方法的参数上,添加@RequestBody接收的是对象参数,但是加上这个注解后会导致接口文档没有输入框选项,需要自行添加JSON格式的参数,这样会带来一些不便利,但是不写入@RequestBody 将请求不到参数,那么如何在不使用这个注解的前提下,又可以获得传来的参数呢

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9GUqAuaB-1686896257685)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230616131030528.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S1LJIMPG-1686896257685)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230616131218712.png)]

可以在前端进行参数转化,即一开始传入的就是JSON格式参数,前端参数为FormData

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ush90spg-1686896257686)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230616132739068.png)]

上面的转换为formData,所要拼接的代码太多,也会造成诸多不便,可在控制台执行以下命令,添加qs插件

npm i qs -S

并在main.js中配置依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S56cf4JC-1686896257686)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230616133221622.png)]

这样代码就可改写为

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u18OLws0-1686896257687)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230616133259928.png)]

方便简洁,同时后端代码中可不必添加@RequestBody

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/653196.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新人如何在实际工作做性能测试?怎么合理选择并发数?

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 从小入手&#xf…

C++ 11(3) | 新的类功能、可变参数模板、lambda表达式

前文中我们讲述了C11中新增的右值引用,在本文中我们将继续讲解C11中的新的类功能、可变参数模板、lambda表达式。 新的类功能 默认成员函数 之前我们学习过在C中有六个默认成员函数构造函数、析构函数、拷贝构造函数、拷贝赋值重载、取地址重载、const 取地址重载…

【59天|503.下一个更大元素II ● 42. 接雨水】

503.下一个更大元素II class Solution { public:vector<int> nextGreaterElements(vector<int>& nums) {stack<int> st;int n nums.size();vector<int> res (n, -1);for(int i0; i<2*n;i){while(!st.empty()&&nums[i%n]>nums[st.t…

第13章_事务基础知识

第13章_事务基础知识 1.数据库事务概述 事务是数据库区别于文件系统的重要特性之一&#xff0c;当我们有了事务就会让数据库始终保持一致性&#xff0c;同时我们还能通过事务的机制恢复到某个时间点&#xff0c;这样可以保证已提交到数据库的修改不会因为系统崩溃而丢失。 1…

Moonbeam路由流动性

Moonbeam路由流动性&#xff08;Moonbeam Routed Liquidity, MRL&#xff09;使加密资产流动性能够从其他生态系统&#xff08;如以太坊、Solana、Polygon或Avalanche&#xff09;进入波卡生态系统。借助MRL&#xff0c;用户可以通过简洁的用户体验向/从波卡转移他们的流动性。…

横竖屏切换导致页面频繁重启?详细解读screenLayout

目录 前言configChangesscreenLayout平板问题总结 前言 前几天多名用户反馈同一个问题&#xff0c;在小新平板上无法上网课&#xff0c;点击上课按钮后就退回到首页了。了解了一下发现小新平板现在销量特别好&#xff0c;于是赶紧申请了一台测试机打算看看到底是什么问题。 最…

牛客网语法篇刷题(C语言) — 分支控制

作者主页&#xff1a;paper jie的博客_CSDN博客-C语言,算法详解领域博主 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《C语言-语法篇》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白…

附录6-todolist案例

效果是这样的 可以添加新任务&#xff0c;改变任务状态&#xff0c;与筛选任务列表 使用vant创建的项目 使用到了bootstrap&#xff0c;首先 npm install bootstrap进行安装&#xff0c;安装后导入css与js 上中下是三个组件&#xff0c;依次是 todo_input&#xff0c;todo_li…

Python控制LitePoint IQxel-MW 无线网络测试仪

前言 由于项目需要进行WIFI和BT&#xff08;蓝牙&#xff09;的射频测试&#xff0c;所以需要开发一款支持WIFI/BT射频测试的工具。开发射频测试工具的话那肯定离不开仪表的控制。我们项目用的就Litepoint的IQxel-MW无线网络测试仪。这篇文章主要就是介绍一下如何控制仪表以及…

初探core组件:opencv - core组件进阶

core组件进阶 1.访问图像中的像素1.1 图像在内存之中的存储方式1.2 颜色空间缩减1.3 LUT函数&#xff1a;Look up table1.4 计时函数 2. ROI区域图像叠加&图像混合2.1 感兴趣区域&#xff1a;ROI2.2 ROI案例2.2 线性混合操作2.3 计算数组加权和&#xff1a;addWeighted()函…

python-segno:二维码制作

目录 二维码版本 微二维码、数据掩码、数据流、模式 微二维码 数据掩码 数据流 二维码模式 二维码背景 二维码参数 helpers方法 其他库制作及二维码读取&#xff1a;python生成和读取二维码_觅远的博客-CSDN博客 安装&#xff1a;pip install segno import segnoqr …

Qt+QtWebApp开发笔记(六):http服务器html实现静态相对路径调用第三方js文件

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131244269 红胖子网络科技博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…

经典30个嵌入式面试问题

经典30个嵌入式面试问题 嵌入式系统的面试经典问题有很多&#xff0c;以下是其中的30个常见问题&#xff1a; 1. 什么是嵌入式系统&#xff1f; 2. 嵌入式系统和普通计算机系统有什么区别&#xff1f; 3. 嵌入式系统的主要应用领域有哪些&#xff1f; 4. 嵌入式系统的设计…

接口测试工具之postman

概念 接口测试是什么&#xff1f; 百度百科给出的解释是&#xff1a; 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换&#xff0c;传递和控制管理过程&#xff0c;以及系统间…

构造函数初始化列表的问题

构造函数初始化列表的问题 无法按照表达式中的算符来修改值原因基本原则由此引申的问题使用初始化列表对类成员初始化在构造函数中赋值对类成员初始化 针对构造函数传参,使用引用的情况使用初始化列表对类成员初始化在构造函数中赋值对类成员初始化 将属性也使用引用总结 无法按…

STM32开发——看门狗

目录 1.独立看门狗 1.1需求 1.2CubeMX设置 1.3函数代码 2.窗口看门狗 2.1需求 ​2.2WWDG配置&#xff1a; 2.3函数代码 3.独立看门狗和窗口看门狗的异同点 1.独立看门狗 监测单片机程序运行状态的模块或者芯片&#xff0c;俗称“看门狗”(watchdog) 。 独立看门狗本质 本…

6、DuiLib控件消息响应处理

文章目录 1、DuiLib控件消息响应处理2、基本的消息响应处理 Notify3、仿 MFC 形式消息响应 DUI_DECLARE_MESSAGE_MAP4、事件委托 MakeDelegate5、消息捕获&#xff08;拦截&#xff09;原生消息 HandleMessage 1、DuiLib控件消息响应处理 <?xml version"1.0" en…

软件测试基础教程学习3

文章目录 软件质量与测试3.1 软件质量问题的原因3.2 对软件质量特性的理解3.3 基于软件质量特性的测试3.4 软件能力成熟度模型&#xff08;CMM&#xff09; 软件质量与测试 3.1 软件质量问题的原因 软件质量问题的原因有以下几种&#xff1a; 软件本身的特点和目前普遍采用的…

AWTK实现汽车仪表Cluster/DashBoard嵌入式GUI开发(五):芯片型号

前言 随着汽车四化的推进,可以说汽车仪表也变成越来越智能化的一个ECU部件了。市面上的车型很多,油车发展了很多年,都有仪表,电车也发展起来了,车型也非常丰富,也都有仪表。仪表现在是作为多屏中一个屏存在的,现在车上最多的就是屏了,最大的要算中控屏了,有的还有空调…

【基础】MQTT -- MQTT 协议详解

【基础】MQTT -- MQTT协议详解 与 Broker 建立连接CONNECT 数据包CONNACK 数据包 断开连接DISCONNECT 数据包 订阅与发布PUBLISH 数据包SUBSCRIBE 数据包SUBACK 数据包UNSUBSCRIBE 数据包UNSUBACK 数据包 本文内容针对 MQTT 3.1.1 版本&#xff0c;从连接、发布与订阅等方面对协…