Телеграм

Java

@javatg Программирование и разработка
РКН: проверяем Не иноагент
Самая актуальная информация по Java

По всем вопросам- @haarrp

@itchannels_telegram - 🔥лучшие каналы

@pythonl - 🐍

@ai_machinelearning_big_data- ml

@ArtificialIntelligencedl - AI

@datascienceiot - ds

@pythonlbooks 📚

РКН: clck.ru/3FmwKr

#VRHSZ

Статистика обновлена 13.11.2026 в 21:46 · 1 просмотр страницы · Хотите больше просмотров?

Подписчики16 542
Охват поста2 087 13% от подписчиков
ERR за месяц12,62%
ERR за 24 часа5,73%

Динамика за 30 дней

Рекламные публикации 1

Все рекламные посты →
Java tg16 тыс. подписчиков
Открыть пост ↗
Отправить и прочитать событие в Kafka из Spring Boot — несколько строк кода.

Отправка: внедряем KafkaTemplate и указываем топик:


@Service
@RequiredArgsConstructor
public class EventPublisher {
private final KafkaTemplate<String, String> kafka;

public void publish(String orderId) {
kafka.send("orders", orderId, "created");
}
}


Получение: добавляем @KafkaListener к методу:


@Component
public class EventConsumer {
@KafkaListener(
topics = "orders",
groupId = "order-service"
)
public void consume(String event) {
System.out.println(event);
}
}


Настройки подключения и сериализации задаём через spring.kafka.*:


spring.kafka.bootstrap-servers=localhost:9092

spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer

spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer


Spring Boot берёт на себя настройку стандартных компонентов интеграции при наличии нужных зависимостей.

Но `send()` работает асинхронно: вызов метода ещё не означает, что брокер подтвердил запись. В рабочем приложении нужно обрабатывать результат отправки, а на стороне потребителя — ошибки и повторную доставку.
👁 2 тыс. ❤ 2👍 2🎉 1 ↻ 15 6 ноября

Последние публикации

Все посты канала →
Java tg16 тыс. подписчиков
Открыть пост ↗
Тест проходит в наборе и падает отдельно? Проверьте сброс моков

Один тест настраивает PaymentClient через when(...).thenReturn(...), чтобы имитировать успешную оплату. Следующий тест случайно пользуется этой настройкой. Пока оба запускаются в нужном порядке, всё зелёное. Запускаете второй отдельно, и он падает.

Такое возможно с reset = MockReset.NONE. Этот режим отключает автоматический сброс, поэтому настройки и история вызовов остаются, пока тесты используют тот же мок. По умолчанию @MockBean и @MockitoBean используют MockReset.AFTER и сбрасывают мок после каждого тестового метода. Если нескольким тестам нужна одинаковая настройка, её можно вынести в @BeforeEach.

С Spring Boot 3.4 @MockBean помечена как устаревшая. Её замена в Spring Framework называется @MockitoBean.

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/context/bean/override/mockito/MockitoBean.html
👁 876 👍 2 ↻ 6 вчера в 18:46
Java tg16 тыс. подписчиков
Открыть пост ↗
🎙 Открытое собеседование по Java с Senior-разработчиком из Uzum

Правильный ответ на собесе ещё не гарантирует оффер. На открытом мок-интервью разберём, что ещё оценивает интервьюер ↓

18 ноября в 19:00 МСК Сергей Чамкин, Senior-разработчик в Uzum, ex-Wildberries, проведёт техническое интервью с кандидатом!

У Сергея 7 лет коммерческого опыта с Java и Kotlin в highload-проектах. Он также проводил технические собеседования в EPAM, Wildberries и RNT Group

За час эфира ты:
→ узнаешь, какие вопросы задают на технических собеседованиях по Java;
→ увидишь, какие ответы убеждают интервьюера, а какие вызывают сомнения;
→ поймёшь, какие темы стоит подтянуть перед собственным собеседованием.

Кандидат увидит вопросы впервые. Никакого заранее подготовленного сценария ☝🏻

Участие бесплатное!
Эфир проходит в рамках менторской программы ШОРТКАТ для разработчиков, которые хотят сменить работу, вырасти в грейде и зарплате или прокачать технические навыки

🎁 Бонус за регистрацию: файл «50 эталонных ответов на сложные вопросы Java-интервью»

Переходи в бота, чтобы зарегистрироваться на эфир и забрать подарок:  @shortcut_sh_bot

Реклама.
О рекламодателе.
👁 924 ↻ 4 вчера в 16:46
Java tg16 тыс. подписчиков
Открыть пост ↗
Java: как Jackson может незаметно сломать ваши immutable-объекты

При десериализации JSON разработчики часто используют классы с пустым конструктором и сеттерами. Но Jackson умеет создавать объекты напрямую через конструктор, сохраняя поля final.

Для этого есть две аннотации: @JsonCreator и @JsonProperty.


public final class User {
private final String name;
private final int age;

@JsonCreator
public User(
@JsonProperty("name") String name,
@JsonProperty("age") int age
) {
this.name = name;
this.age = age;
}

public String getName() { return name; }
public int getAge() { return age; }
}


Теперь Jackson может создать объект из JSON без единого сеттера:


{
"name": "Alex",
"age": 25
}


Почему это полезно?

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

Есть нюанс: @JsonProperty сама по себе не гарантирует, что поле обязательно присутствует в JSON. Для строгой валидации понадобятся дополнительные настройки или проверки.

А если используете Java 17+, во многих случаях можно обойтись ещё проще:


public record User(String name, int age) {}


Jackson поддерживает десериализацию records начиная с версии 2.12.

Меньше шаблонного кода, никаких сеттеров и более предсказуемая модель данных.
👁 1 тыс. 👍 2🔥 2 ↻ 13 вчера в 12:03