Рубрика «spring» - 2

Так исторически сложилось, что Apache Kafka использует для своих сообщений смещения (или же offset). В зависимости от нужд для настроек консьюмера можно выставить в параметр auto.offset.reset три значения: earliest, latest, none. По умолчанию, если данный параметр не задан, используется значение latest.

В данным выпуске я хочу заострить внимание на параметре none.

Earliest

Данные параметр используется, если вам необходимо получать сообщения с самого начала партиций топика. Как правило, данная опция имеет смысл, если вам нужно наполнить данными БД, передать все значения из одного место в другое и т.п.

Latest

Читать полностью »

в 13:16, , рубрики: java, patterns, spring

Всем привет.

Я разрабатываю приложения с использованием Java, Spring Boot, Hibernate.

В этой статье я хочу поделиться опытом создания Fluent Interface, но не классического шаблона из GOF, а с использованием Spring.

Классическим примером шаблона Fluent Interface в Java является Stream API. Я покажу, как можно написать нечто подобное, используя Spring.

Пример клиентского кода:

 Participant participant = testEntityFactory.participantBy(RankType.WRITER)
            .withName("customName")
            .withPost("post_1")
            .withPost("post_2")
            .withPost("post_3")
            .createOne();

Предисловие

Все мы знаем, как легко можно реализовать Chain of Responsibility pattern при помощи Spring:

Читать полностью »

Всем привет! Иногда бывает так, что учиться очень сложно и мотивацию надо поднять, а дженерики и лямбда выражения совсем высосали силы. Поэтому я, пару дней назад, залипая в мобильную игру, внезапно поймал себя на мысли, что могу упростить себе и еще нескольким сотням человек жизнь. Поэтому было принято решение сделать свое приложение

Читать полностью »

В этой статье я хочу базово пройтись по Spring. Рассказать о возможностях конфигурации её бинов и немного залезть во внутрь.

IoC container - это контейнер, реализующий принцип Inversion of Control (IoC). Он управляет созданием, связыванием и жизненным циклом бинов, которые конфигурируются на различных этапах сборки приложения и затем добавляются в контекст.

org.springframework.beans и org.springframework.context пакеты являются основой для Spring Framework’s IoC container. BeanFactoryЧитать полностью »

Java Digest #2 - 1

Всем привет! 👋 👋 👋

Мы — Java-разработчики Тинькофф: Константин, Андрей и Арсений. Собираем новости, статьи, туториалы и другие интересные материалы из мира Java-разработки. Решили делиться этим не только с коллегами, но и со всем сообществом.

Читать полностью »

Цель данного мини-туториала

Ниже будет краткий обзор настройки приложения, написанного на Kotlin + Spring Boot, которое развернуто в кластере в нескольких экземплярах и использует библиотеку Quartz для выполнения запланированных по cron заданий только на одном из инстансов этого сервиса.

Читать полностью »

image

В этой статье мы разберём, как добавить к файлу класса публичный атрибут. Когда загрузчик классов завершит загрузку модифицированного файла класса, мы увидим то поле, которое добавили вручную.
Читать полностью »

Получение generic-типа в runtime - 1

В Java 5 появились generic-типы, а вместе с ним и концепция type erasure, которая буквально означает стирание информации о generic-типе после компиляции. Действительно, во многих случаях это просто синтаксический сахар, помогающий писать типо-безопасный код на уровне компиляции, и в runtime с такими типами работать нельзя. Например, невозможно получить тип T внутри ArrayList<T>, поэтому он в своей реализации создает массив Object[], а не T[] для хранения элементов.

Однако, в ряде случаев это очень даже возможно. Например, можно объявить поле

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanPostProcessor;
...
@Autowired
private Set<BeanPostProcessor> beanPostProcessors;

и spring в него заинжектит все объекты контекста, которые реализуют интерфейс BeanPostProcessor.

Можно написать и так:

import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
...
List<String> strings = new ObjectMapper()
     .readValue("[1, 2, 3]", new TypeReference<>() {});
// все элементы strings - строки (не Integer и не Long)
List<Integer> ints = new ObjectMapper()
     .readValue("[1, 2, 3]", new TypeReference<>() {});
// все элементы ints - Integer (не String и не Long)

Можно написать даже так:
Читать полностью »

Как известно, во многих IT-проектах есть типичная задача -  транзакционная обработка данных в интеграционных сценариях, когда необходимо согласованно отправить или принять данные из внешней системы и при этом обновить собственное состояние приложения.

Особенно интересной эта задача становится, когда для интеграции используется Kafka, так как она имеет свои ограничения, касающиеся реализации транзакционности. Вообще, сейчас Kafka достаточно широко применяется именно  в качестве платформы для асинхронной интеграции, это справедливо и для проектов, которые мы в Читать полностью »

Создание телеграмм-бота (Spring Boot, Kafka, PostgreSQL), часть первая - 1

Иванов Максим

Младший Java программист

Рецепт по приготовлению своего «Telegram-Франкенштейна»

Читать полностью »

https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js