Окрім усіх наведених вище відповідей, не забувайте про частину документації, яка говорить
Анотація маркера, яка може бути використана для визначення нестатичного методу як "сеттера" або "getter" для логічного властивості (залежно від його підпису), або нестатичного об'єктного поля, яке буде використовуватися (серіалізоване, десеріалізоване) як логічне майно.
Якщо non-static
у вашому класі є метод, який не є звичайним, getter or setter
ви можете змусити його діяти як a getter and setter
, використовуючи на ньому анотацію. Дивіться приклад нижче
public class Testing {
private Integer id;
private String username;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getIdAndUsername() {
return id + "." + username;
}
public String concatenateIdAndUsername() {
return id + "." + username;
}
}
Коли вищезазначений об'єкт серіалізується, відповідь міститиме
- ім'я користувача від
getUsername()
- ід від
getId()
- idAndUsername від
getIdAndUsername
*
Оскільки метод getIdAndUsername
починається з get
цього, тоді він трактується як звичайний гетьер, чому ви могли б коментувати таке @JsonIgnore
.
Якщо ви помітили, що concatenateIdAndUsername
не повертається, і це тому, що його ім'я не починається з, get
і якщо ви хочете, щоб результат цього методу був включений у відповідь, ви можете використовувати @JsonProperty("...")
його, і він буде розглядатися як звичайний, getter/setter
як зазначено у вищезазначеній документації .