Лямбда-выражения в 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 легко. Также легко аннотировать ею класс, метод или другой элемент. Но толку от этого кода будет мало, поскольку для любой аннотации нужен обработчик. И вот тут все становится намного сложнее, поскольку написать можно совершенно разные обработчики аннотаций, и они могут обрабатывать аннотацию на разных этапах – от компиляции до времени выполнения кода.

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

Maven: Goals и Phases

На первый взгляд сборка Maven выглядит магией – мы выполняем простую команду и запускается целый жизненный цикл, состоящий из фаз, к каждой из которой привязан свой плагин и goal (иногда не один).
Давайте разберемся, что такое фазы, голы, и как они соотносятся между собой.
Читать далее «Maven: Goals и Phases»

Введение в Spring Integration на примере использования Service Activator

В этой статье показан пример использования Service Activator.

Попутно показан IntegrationFlowDirectChannel и как отправлять сообщения через @Gateway.
Читать далее «Введение в Spring Integration на примере использования Service Activator»

Введение в AOP в Spring Boot

В этой статье мы с помощью Spring AOP сделаем три вещи:

  • Будем логировать вызовы определенного метода
  • Будем логировать возвращаемое значение определенного метода при каждом вызове.
  • Будем замерять и логировать время выполнения определенного аннотированного метода при каждом вызове. (Для этого метода создадим обычную (не Spring) Java-аннотацию, чтобы пометить метод с помощью нее).
    Читать далее «Введение в AOP в Spring Boot»

Класс в Java

Класс в Java – это описание или прототип объекта. Класс содержит свойства и методы объекта. В свойствах хранится состояние объекта, а методы описывают поведение объекта.
Читать далее «Класс в Java»