Java後端避坑——如何使用註解忽略掉JavaBean的屬性值

在作先後端分離的時候,咱們須要經過JSON數據的傳遞來實現相應的業務功能,例如在作登陸接口的時候,咱們能夠使用Spring Security安全框架進行認證登陸,將用戶信息等數據保存到Authentication中,而後給前端返回相應的JSON數據,這些信息確定會包含用戶帳號密碼等一系列已經保存在數據庫中用戶的信息。前端

像下面這樣的JSON數據:

下面是重寫登陸成功的時候認證的方法:

public void onAuthenticationSuccess(HttpServletRequest req, HttpServletResponse resp, Authentication authentication) throws IOException, ServletException {
    resp.setContentType("application/json;charset=utf-8");
    PrintWriter out = resp.getWriter();
    ObjectMapper om = new ObjectMapper();
    String s = om.writeValueAsString(RespBean.ok("登陸成功!",authentication.getPrincipal()));
    out.write(s);
    out.flush();
    out.close();
 }
複製代碼

這個時候就會涉及到一個問題,咱們沒有必要將用戶的密碼信息也返回到前端去,由於那樣會存在用戶信息不安全。那咱們應該怎麼辦呢?一般咱們通常會想要把setPassword設置爲null值,然返回的密碼爲空,這是一種方法。 不過還有一種更爲簡便的方法,就是在getPassword的方法上加上 @JsonIgnore,簡潔又方便。java

示例代碼以下:

@JsonIgnore//生成json時忽略這個字段
@Override
public String getPassword() {
    return password;
}
複製代碼

@JsonIgnore,這個註解的做用是JSON序列化時將Java bean中的一些屬性忽略掉,須要注意的是序列化和反序列化都會受到影響。數據庫

聚沙成塔,滴水穿石!json

相關文章
相關標籤/搜索