Java阶段四Day06
文章目录
- Java阶段四Day06
- 关于配置响应内容中不包含Null的属性
- 关于配置跨域
- 关于如何不用添加@RequestBody也可以接收请求
关于配置响应内容中不包含Null的属性
响应内容中的null
可以使用以下三种方式中的一种即可解决,且范围越小,越优先
-
在
JsonResult
中的对应属性添加注解@JsonInclude(JsonInclude.Include.NON_NULL) // 在属性上配置 private Object data;
-
在
JsonResult
类上添加注解@JsonInclude(JsonInclude.Include.NON_NULL) // 在类上配置 public class JsonResult {
-
在
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
将请求不到参数,那么如何在不使用这个注解的前提下,又可以获得传来的参数呢
可以在前端进行参数转化,即一开始传入的就是JSON
格式参数,前端参数为FormData
上面的转换为formData
,所要拼接的代码太多,也会造成诸多不便,可在控制台执行以下命令,添加qs
插件
npm i qs -S
并在main.js
中配置依赖
这样代码就可改写为
方便简洁,同时后端代码中可不必添加@RequestBody