Разработка реактивных приложений с Reactive Streams и Java 8. Часть 2.

В этой части показывается, как использовать Reactive Streams в реальном приложении. Первая часть тут.
Читать далее «Разработка реактивных приложений с Reactive Streams и Java 8. Часть 2.»

Агрегатор в Spring Integration

Агрегатор – конечная точка, которая может объединять несколько сообщений в одно. Часто используется в паре со Сплитером. Сплитер – конечная точка, которая наоборот, разбивает одно сообщение на несколько.
Читать далее «Агрегатор в Spring Integration»

Адаптеры в Spring Integration: работа с почтой и базой

Во введении мы уже использовали Gateway, в этой статье будем использовать адаптеры. Мы напишем приложение, которое будет получать данные Animal из почтового ящика через Imap Inbound Adapter и добавлять их в базу данных через Jpa Outbound Adapter.
Читать далее «Адаптеры в Spring Integration: работа с почтой и базой»

Передача параметров в Java: по значению или по ссылке?

В Java все параметры передаются по значению, хотя некоторые говорят, что, мол, объекты передаются по ссылке. Но это не так – сейчас объясню тонкость.
Читать далее «Передача параметров в Java: по значению или по ссылке?»

Лямбда-выражения в Java 8

В этой статье речь идет о лямбда-выражениях, функциональных интерфейсах. Подробно рассматривается синтаксис лямбда-выражений, а также приводятся стандартные функциональные интерфейсы из JDK.
Читать далее «Лямбда-выражения в Java 8»

Инъекция зависимости с помощью библиотеки Reflection

В этой статье мы реализуем шаблоны Dependency Injection и Inversion of Control – на этих шаблонах основана Spring Framework.
Читать далее «Инъекция зависимости с помощью библиотеки Reflection»

Аннотации в Java и их обработка в RUNTIME с помощью рефлексии

Аннотации – это своего рода маркеры, которые служат знаком либо компилятору, либо обработчику скомпилированных классов, либо самому приложению во время его выполнения – знаком что-то сделать.  Для аннотаций всегда нужен обработчик, сами они ничего не делают.
Читать далее «Аннотации в Java и их обработка в RUNTIME с помощью рефлексии»

Модификация байт-кода с помощью Instrumentation

В этой статье мы рассмотрим пакет java.lang.instrument.Instrumentation, с помощью которого можно поменять байт-код класса на этапе его загрузки.
Читать далее «Модификация байт-кода с помощью Instrumentation»

Обработка аннотаций на уровне исходников

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

Читать далее «Обработка аннотаций на уровне исходников»