后端返回给前端的数据中隐藏为null的字段【springboot】

环境

springboot2

需求

在一个返回给前端的实体类中,因为某一新需求增加了两个字段,但是希望以前使用接口返回该实体类时候,不返回这两个字段。

   @TableField(exist = false)
    private Long postId;

    @TableField(exist = false)
    private String postName;

因为之前的接口没有赋值给前两个字段,所以不对其两个字段进行处理,都会返回null,可以那这个特性作为切入点。
并且Spring Boot中,默认使用Jackson作为JSON序列化和反序列化的库,所以要在返回给前端的数据中隐藏为null的字段,你可以使用Jackson库提供的注解来控制字段的序列化行为。来隐藏为null的字段

解决步骤

在需要其隐藏为null的字段加入注解JsonInclude

    @TableField(exist = false)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private Long postId;

    @TableField(exist = false)
    @JsonInclude(JsonInclude.Include.NON_NULL)
    private String postName;

如果是需要整个类的字段都需要这个需求,可以将其JsonInclude注解放在类名上

测试

有数据的时候

没有数据的时候
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Spring Boot 后端,我们可以使用 Spring Security 框架来实现基于 token 的认证和授权。具体步骤如下: 1. 在用户登录成功后,生成一个 token 并返回前端。 2. 前端在后续的请求,在请求头添加一个名为 Authorization 的字段,值为 "Bearer " + token。 3. 后端在接收到请求后,从请求头解析出 token。 4. 后端使用 Spring Security 的 filter 对 token 进行验证,判断该请求是否有权限访问。 下面是 Spring Boot 后端的示例代码: 1. 在登录成功后,生成一个 JWT token 并返回前端 ```java // 生成 JWT token String token = Jwts.builder() .setSubject(user.getUsername()) .setExpiration(new Date(System.currentTimeMillis() + EXPIRATION_TIME)) .signWith(SignatureAlgorithm.HS512, SECRET) .compact(); // 将 token 返回前端 response.addHeader(HEADER_STRING, TOKEN_PREFIX + token); ``` 2. 前端在请求头添加 Authorization 字段 ```javascript // 在请求头添加 Authorization 字段 axios.defaults.headers.common['Authorization'] = 'Bearer ' + token; ``` 3. 后端从请求头解析出 token ```java // 从请求头获取 token String header = request.getHeader(HEADER_STRING); if (header == null || !header.startsWith(TOKEN_PREFIX)) { chain.doFilter(request, response); return; } String token = header.replace(TOKEN_PREFIX, ""); ``` 4. 后端使用 Spring Security 的 filter 对 token 进行验证 ```java // 使用 Spring Security 的 filter 对 token 进行验证 Authentication authentication = new JwtAuthenticationToken(token); SecurityContextHolder.getContext().setAuthentication(authentication); chain.doFilter(request, response); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

已久依依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值