Сканирование аннотаций

Как я уже писал, аннотации в Java это просто метки в коде, которые находятся и анализируются другим кодом. А, следовательно, недостаточно уметь просто создавать аннотации, надо научиться и находить неизвестный код, который ими аннотирован. И, к сожалению, это довольно непросто. Читать далее Сканирование аннотаций

Hello, annotations!

Главное что нужно знать об аннотациях — они ничего не делают! Аннотации представляют собой простые метки в коде и больше ничего. Когда кто-то говорит «Аннотация @DoSomething делает блаблабла» это фактически означает, что кто-то где-то вызывает код, который находит типы с этой Читать далее Hello, annotations!

JDBC ResultSet и RowSet

Базы данных всё таки о данных, а не о запросах. В JDBC данные, которые возвращают запросы, представлены в виде объектов ResultSet. ResultSet, в свою очередь, жёстко связан со Statement, который его породил и существует только до момента закрытия этого самого Statement  Читать далее JDBC ResultSet и RowSet

Разломбочивание

Project lombok автоматизирует написание одного и того же кода и позволяет сосредоточиться на задаче и при этом писать более простой и понятный код. С другой стороны, первый постулат Пардо напоминает: «Все, что есть хорошего в жизни, либо незаконно, либо аморально, Читать далее Разломбочивание

Конфигурирование lombok

В статье о генерации геттеров и сеттеров я упоминал о конфигурационном файле project lombok. Настало время рассмотреть его подробнее. Конфигурационный файл project lombok имеет фиксированное имя lombok.config и не привязан к какому-либо заранее оговорённому расположению. Действие lombok.config распространяется на каталог, в котором Читать далее Конфигурирование lombok

lombok для классов с кодом

Project lombok в первую очередь был нацелен на облегчение написания entity классов, которые хранят данные, но не обрабатывают их. Для классов содержащих код у project lombok тоже есть вспомогательные аннотации.

@Log @Log вставляет в класс логгер, избавляя разработчика от Читать далее lombok для классов с кодом

Builder в одну строку

Шаблон проектирования Builder, цитирую, «отделяет конструирование сложного объекта от его представления, так что в результате одного и того же процесса конструирования могут получаться разные представления.» На практике это означает, что пользоватся builder обычно удобно, а вот реализовывать его — адов Читать далее Builder в одну строку

equals(), toString() и сущности.

О том, как замечательно project lombok  сам генерирует геттеры/сеттеры и конструкторы, я уже писал. Но у класса Object есть ещё методы и их тоже можно переопределять автоматически. equals() и hashCode() Эти методы глубоко пересечены, поэтому генерируются вдвоём, аннотацией  @EqualsAndHashCode

Параметр exclude указывает, Читать далее equals(), toString() и сущности.

Генерация конструкторов и доступ к полям.

Project lombok генерирует не только геттеры и сеттеры, но и конструкторы и свойства полей класса. Модификаторы полей. В первую очередь избавимся от вечноповторяющихся private  и final. Аннотация @FieldDefaults, применённая на класс, позволяет задать всем поля класса уровень доступа по умолчанию или Читать далее Генерация конструкторов и доступ к полям.

Геттеры и сеттеры в Lombok

Моя самая любимая функциональность проекта lombok — генерация геттеров и сеттеров. Наконец-то java разработчики избавляются от тяжёлого наследия и сбрасывают с себя цепи. Генерируют геттеры и сеттеры аннотации @Getter и @Setter:

Параметром аннотации можно задать уровень доступа к сгенерированному методу. Читать далее Геттеры и сеттеры в Lombok