My thoughts about Java application development, Spring Framework, TDD and other…​

My Articles and Blog Posts:

TDD

How to use the JUnit5 in the Spring Framework 4 (English) english

The workaround for using a modern version of Junit (the JUnit5 Jupiter) with a Spring Framework version older than 5, or SpringBoot version earlier than 2.0.

How to use the Parallel Execution of tests in the JUnit5 (English) english

Example of usage the JUnit5 5.3.0-RC1 to run tests in parallel execution mode.

Asynchronous tests, the Awaitility and uncaught exceptions from other threads (English) english

The story of my research of fragile asynchronous tests in the Spring Framework and uncaught exceptions handling by the Awaitility.

Spring State Machine:

Spring State machine workshop (English) english

Example of using a spring state machine for an automatization of a different kinds of business process.

Spring State machine workshop (Russian) russian

Использование spring state machine для автоматизации бизнес-процессов

Persisting a spring state machine (English) english

How to store a current state of a state machine in the MongoDb and how to test it with the Docker by the testcontainers framework.

Error handling (English) english

How to work with errors that occur in a different parts of the state machine logics.

Spring Cloud:

Spring cloud stack (English) english

Example of using an infrastructure for a microservices application, based on spring cloud stack.

How to use JUnit5 and Spring Cloud Contract (English) english

Example of using a Spring Cloud Contract for testing of the contract between pair of microservices. We consider how to make a full circle of using a Spring Cloud Contract with JUnit5, we will talk about a using TeamCity to build a project and Artifactory for deploy binary of contracts.

Spring Configuration:

Spring auto-configuration & conditional (English) english

Write you own auto-configuration classes with a ConditionalOnBean dependency

Hibernate

Choosing the right way to initialize a fields of the entity (Russian) english

Варианты инициализации полей сущности, значениями поумолчанию, а так же типичные ошибки при работе с ними. Эта статья послужила материалом для Детективной истории от Баруха Садогурского и Евгения Борисова на конференции jpoint 2018.

разворачиваем прокси (hibernate покажи личико) (Russian) english

Как получить из hibernate proxy сам объект.

Reflection

создаем новый объект через reflection (Russian) english

Тонкости implicit параметров при создании нового экземпляра объекта.

Concurrency & Garbage Collector

Soft, Weak & Phantom References in Java (English) english

Consider the differences between the types of references in Java. And look at examples of using a WeakReference, SoftReference & PhantomReference.

Synchronized by the value of the object (English) english

An example of the use of WeakReference for the synchronization by value of object. Also a comparing of benchmark for different ConcurrentMap implementations.

Code conventions:

Code style conventions (English) english

Code style conventions

Annotation processing

Как подружить lombok и mapstruct (Russian) english

Как использовать сразу два кодо-генератора, да так чтобы задать определенную последовательность их запуска.

Public Talks:

Spring Cloud Contract - API контракты микросервисов - 12.10.2018 english

 

State machine workshop live video - 18.05.2018 english