Комментарии 9
Т.е. вся проблема в том, что приходящие данные мы можем изменить через сеттер? И очищение боди сеттера не вариант?
0
Значит jackson сначала создавал класс с помощью конструктора без параметров, а потом вызывал getter/setter.
Ну да, так все делают. Практически всем библиотекам сериализации необходим пустой конструктор (обычно приватный) — только Java Serialization позволено инициировать "пустые" объекты без конструктора, хотя есть способы обхода этого. Для установки данных Jackson может использовть как геттеры-сеттеры, так и прямой доступ к полям любой видимости.
компилятору необходимо передать флаг javac -parameters
Плохой способ. Ни одна из существующих IDE не подцепит это, поэтому придется устанавливать дополнительно в настройках проекта. И вообще код качественно не должет зависеть от флагов компиляции. Если Вы используете Lombok, то есть лучший способ — прописать в lombok.config:
lombok.allArgsConstructor.addConstructorProperties = true
Это сгенерит на конструкторе @java.beans.ConstructorProperties
, который Jackson умеет понимать.
+4
Как-то сумбурно, на мой взгляд. Могли бы вы структурировать эту статью: проблема, описание, возможные решения, вывод?
Проблема, как я понял, в том, что вам не нравится многословность аннотаций у boot 1.5, но я так и не понял из текста решена ли она в boot 2, или она решается подключением Kotlin к boot 1.5, или и тем и тем одновременно. И что, в итоге, сделали вы?
Проблема, как я понял, в том, что вам не нравится многословность аннотаций у boot 1.5, но я так и не понял из текста решена ли она в boot 2, или она решается подключением Kotlin к boot 1.5, или и тем и тем одновременно. И что, в итоге, сделали вы?
+1
Спасибо за комментарий, постараюсь перекомпоновать. Я хотел показать как происходила эволюция в проектах, которые я видел. Изначально у меня была проблема что quarkus + kotlin data class не работают, spring boot 1.5 + kotlin data class не работают, Хотя spring boot 2 + kotlin data class работает. В итоге добавление флага компилятора спасает, т.е. залезаем в pom файл spring-boot-starter-parent и копируем флаги, например в quarkus проект и это спасает.
0
НЛО прилетело и опубликовало эту надпись здесь
Интересная тема для быстрого создания приложения. Спасибо!
Небольшая поправка, можно добавить final, чтобы сделать класс еще больше иммутабельным. Точнее это защитит его от других программистов, если они захотят менять api класса.
Небольшая поправка, можно добавить final, чтобы сделать класс еще больше иммутабельным. Точнее это защитит его от других программистов, если они захотят менять api класса.
@Getter
public class Fruit {
private final String name;
private final String description;
public Fruit( String name, String description) {
this.name = name;
this.description = description;
}
}
+1
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Умеем ли мы готовить Java, Kotlin RestController?