Java guru
5.2K subscribers
1 photo
1 video
1 file
261 links
Новости из мира Java, обзоры интересных библиотек и фреймворков, обучающие статьи. Онлайн обсуждения актуальных тем и обмен опытом. Для связи @RodmanDV
Download Telegram
Spring Data JPA: разница между методами findById, getOne, getById и findOne

Когда ваш репозиторий наследуется от JpaRepository из Spring Data JPA, он получает методы findById, getOne, getById, и findOne. Исходя из их имен, вы можете подумать, что они делают одно и то же.
Но Spring Data явно не стала бы давать нам 4 совершенно одинаковых метода под разными именами. Итак, давайте подробнее рассмотрим эти методы и найдем их отличия.

https://thorben-janssen.com/spring-data-findbyid-getone-getbyid-and-findone/
👍1🔥1
Java 21: новый подход к созданию строк

Java 21 предлагает много классных функциональностей, и одна из них  —  шаблоны строк (англ. String Templates). При том, что их целевое назначение не ограничивается только строковой интерполяцией, для Java-разработчиков они служат еще одним “правильным” способом конкатенации строк. 

https://nuancesprog.ru/p/18883/
👍1
Магия Spring Framework своими руками

Прокси объекты являются основой "магии" Spring Framework. В качестве демонстрации реализована @JmxExporter аннотация, которая позволяет превратить любой Spring Bean в JMX MBean.

https://habr.com/ru/articles/750894/
🔥2
Ивентная модель данных с использованием Kafka и Kafka Connect: Построение гибкой и распределенной архитектуры

В этой статье мы рассмотрим, как Kafka Connect – мощный инструмент из экосистемы Apache Kafka – приходит на помощь при решении сложной задачи синхронизации данных между базами данных. Мы рассмотрим, как используя Kafka Connect, мы можем эффективно следить за изменениями в одной базе данных, обрабатывать их в нашем Java приложении и мгновенно записывать их в другую базу данных, обеспечивая надежность и безопасность данных.

https://habr.com/ru/articles/751256/
🔥1🌚1
Разница между загрузкой и инициализацией классов в Java на любопытном примере

Очень интересная статья о тонкостях загрузки и инициализации классов. Получил большое удовольствие от прочтения. Поводом для написания статьи стал вопрос на StackOverflow.

https://habr.com/ru/articles/740156/
🔥1
Новый взгляд на Maven-plugin для IDEA — GMaven

Многие из нас часто работают с maven проектами, но как среда разработки изнутри работает с maven? В статье один из разработчиков JetBrains из команды build tools делится тем как устроена работа Maven-plugin.

https://habr.com/ru/articles/753828/
👍2
Исчерпывающее руководство по одномерным массивам в Java

Довольно подробное описание массивов в Java. Обратите особое внимание на «3. Тип данных массива» и «4. Длина массива». Там для исследования использует jol и рассказывает о структуре class файла.

https://habr.com/ru/articles/753638
🔥3
Предложена опережающая (Ahead of time) компиляция для JVM

Надо признать довольно интересное предложение в контексте возможности ускорения старта приложения в облачной инфраструктуре.

https://www.infoworld.com/article/3704490/ahead-of-time-compilation-proposed-for-the-jvm.html#tk.rss_java
👍2
Объектно-ориентированный подход к созданию REST-клиентов, или возможна ли жизнь без Open API

Довольно радикальный взгляд на возможность отказа от Open API в REST сервисах. Open API стал негласным стандартом при разработке REST сервисов. Возможно в локальных проектах где есть гарантия того , что будет использоваться исключительно экосистема JVM языков это решение окажется лучше. Сама идея мне лично понравилась.

https://habr.com/ru/companies/magnit/articles/763952/
🔥21
Как скомпилировать Spring Boot приложение в native image с помощью GraalVm и развернуть его с помощью Docker

GraalVm довольно интересная штука, но лично меня она сильно не впечатлила. Старт приложения происходит действительно быстрее. В статье приводится пример сборки довольно простого приложения.

https://habr.com/ru/articles/755550/
👍1
«Фундаментальное»руководство по пакетам в Java

Джунам прочитать будет полезно. Пакеты в Java появились с самого начала, во времена, когда язык еще назывался Oak. Java-пакеты реализуют так называемое пространство имен (namespace), позволяющее использовать в проекте файлы с одинаковыми именами. Такой подход существует с давних времен во многих языках.

https://habr.com/ru/articles/755654/
Все что вам нужно знать о таймаутах

В статье хорошо раскрыта тема таймаутов и даны ссылки на доп материал. В статье дается пример с использованием CompletableFuture, но лучше конечно полагаться на готовые решения типа Resilience4j.

https://engineering.zalando.com/posts/2023/07/all-you-need-to-know-about-timeouts.html
Аудит пользователей Spring Data JPA

В статье приводится одно из возможных решений по аудиту изменений в базе. Хочу также отметить, что с soft delete-ами нужно быть аккуратными. Обратите также внимание на комментарии к статье.

https://habr.com/ru/companies/nlmk/articles/757866/
👍1🔥1
Высокие технологии или дешевые фокусы с двойным дном

Мне никогда не приходила идея мокать null. В этом случаи наблюдается достаточно интересный эффект, который на первый взгляд похож на «магию».

https://habr.com/ru/articles/759344/
👍4👏1
Прикольная игрушка про историю развития Spring

Браузерная игрушка в стиле «Марио», созданная к 20-летию Spring. Управляя листочком, мы узнаем о самых важных вехах развития фреймворка с 2003 года.

https://springone.io/history-of-spring
👍2🔥1
JDBC Profiling with VisualVM

Думаю многие из вас пользовались старым добрым VisualVM. В нем есть прекрасная возможность попрофилировать взаимодействие с базой. В частности можно поисследовать медленные запросы к базе, а также проблему N+1

https://vladmihalcea.com/jdbc-profiling-visualvm/