bookjava | Unsorted

Telegram-канал bookjava - Библиотека Java разработчика

10986

📚 Лайфхаки, приёмы и лучшие практики для Java-разработчиков. Всё, что ускорит код и прокачает навыки. Java, Spring, Maven, Hibernate. По всем вопросам @evgenycarter РКН clck.ru/3KoGeP

Subscribe to a channel

Библиотека Java разработчика

Что выведет код?


public class Main {
public static final int END = Integer.MAX_VALUE;
public static final int START = END - 100;

public static void main(String[] args) {
int count = 0;
for (int i = START; i <= END; i++) count++;
System.out.println(count);
}
}



📲Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

Работа с JDK Flight Recorder (JFR) из командной строки: инструмент для профилирования без графического интерфейса

Экосистема Java богата качественными инструментами для разработчиков, и средства профилирования и диагностики - не исключение.

Существуют коммерческие профилировщики, есть встроенные инструменты профилирования в ведущих IDE. А если вам важна свобода (или цена является важным фактором), open source сообщество также готово предложить достойные альтернативы.

JFR (JDK Flight Recorder) один из ключевых инструментов для диагностики работы Java приложений, который можно эффективно использовать из командной строки. Приёмам работы с этим инструментом я хочу посвятить данную статью.

https://habr.com/ru/companies/axiomjdk/articles/964362/

📲 Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

Совет 💡

Обычно при сортировке в Spring Data мы указываем свойство, по которому хотим отсортировать, как строку. Однако существует класс TypedSort, который дает нам возможность передавать функцию в качестве параметра для сортировки. Это повышает безопасность типов в нашем коде.

📲 Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

💡Совет по Java: Если в Java Map нужно хранить несколько значений для одного ключа, используйте Apache Commons MultiValuedMap.

Если нужно хранить несколько значений для одного ключа в Map, можно использовать MultiValuedMap:
- List для дублирующихся значений (с повторениями).
- Set для уникальных значений (без дубликатов).

Пример кода:
1. ArrayListValuedHashMap – значения хранятся в списке (допускаются дубликаты):


MultiValuedMap<Integer, String> listMap = new ArrayListValuedHashMap<>();
listMap.put(1, "A");
listMap.put(1, "A");
listMap.put(1, "B");
listMap.put(1, "C");
Collection<String> values = listMap.get(1);
// values = ["A", "A", "B", "C"]


2. HashSetValuedHashMap – значения хранятся в множестве (дубликаты не допускаются):

MultiValuedMap<Integer, String> listMap = new HashSetValuedHashMap<>();
listMap.put(1, "A");
listMap.put(1, "A");
listMap.put(1, "B");
listMap.put(1, "C");
Collection<String> values = listMap.get(1);
// values = ["A", "B", "C"]


MultiValuedMap – удобное решение, чтобы избежать ручного управления коллекциями значений для одного ключа. Можно легко переключаться между List и Set реализациями в зависимости от задачи.

📲 Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

🎥 Открытый урок «Наблюдаемость микросервиса: метрики + Prometheus/Grafana».

🗓 11 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса
«Java Developer. Advanced».

Что будет на вебинаре:

✔️ Полезные метрики для микросервисов: технические и продуктовые; типовые анти-метрики.
✔️Интеграция Spring Actuator/Micrometer и экспорт /actuator/prometheus.
✔️ Сбор в Prometheus: таргеты, ретенция, базовые правила алертинга.
✔️ Дашборды «для разработчика» в Grafana: структура панелей, аннотации, drill-down.

В результате вебинара вы:
- Сможете выделять действительно важные метрики, подключить Actuator/Micrometer, настроить сбор в Prometheus и собрать базовый дашборд в Grafana.

Кому будет интересно:
Java backend-разработчикам, DevOps/SRE и инженерам, отвечающим за эксплуатацию микросервисов.

🔗 Ссылка на регистрацию: https://vk.cc/cR1RCp

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

Библиотека Java разработчика

🚀 Совет по Spring 🚀

Тестовые библиотеки Spring Boot (Testjars) 🔥

Привет, поклонники Spring! В этом выпуске мы рассмотрим новый проект Spring Boot Testjars, который значительно упрощает создание и повторное использование вспомогательных сервисов на базе Java, таких как микросервисы на основе Spring Boot или инфраструктурные компоненты, например, Spring Authorization Server.

источник

📲 Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

Java. Быстрая сортировка. Реализация алгоритма QuickSort.

Как работает быстрая сортировка, разбор и реализация алгоритма.

источник

📲 Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

🚀 Хотите писать надёжный и эффективный код на Java? Начните с бесплатных вебинаров от курса «Java-разработчик»!

🗓 10 ноября, 20:00 - «Строки в Java: String, StringBuilder»

- Разберём String и StringBuilder, чтобы писать быстрый и безопасный код
- Поймёте неизменяемость строк и String Pool
- Узнаете, когда использовать StringBuilder вместо конкатенации

🎯 Для начинающих и опытных Java-разработчиков, которые хотят повысить надёжность и производительность кода.

🗓 18 ноября, 20:00 - «Исключения в Java: как писать стабильный код»

- Разберём checked/unchecked исключения
- Правильное использование try-catch-finally и throws
- Практика с NullPointerException
- Узнаете, когда бросать свои исключения, а когда нет

🎯 Для всех, кто хочет писать предсказуемый и устойчивый код, включая начинающих и практикующих Java-разработчиков.

👉Регистрируйтесь прямо сейчас: https://vk.cc/cQWI8m

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

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

Библиотека Java разработчика

Совет 💡

Установка @Column в updateable=false приводит к тому, что реализация JPA будет игнорировать этот столбец при выполнении оператора обновления. При этом не будет выброшено исключение. Это никак не влияет на базу данных. Вы по-прежнему можете обновлять столбец вне Hibernate.

Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

Многопоточность в Java

В Java многопоточность реализована через класс Thread и интерфейс Runnable. Вот основные моменты, которые могут быть полезны при работе с многопоточностью:

🔵1. Создание и запуск потока
- Поток может быть создан двумя способами:
- Наследование от класса Thread:


class MyThread extends Thread {
public void run() {
// Код, выполняемый в потоке
}
}
MyThread t = new MyThread();
t.start();

- Реализация интерфейса Runnable:

class MyRunnable implements Runnable {
public void run() {
// Код, выполняемый в потоке
}
}
Thread t = new Thread(new MyRunnable());
t.start();


🔵2. Основные методы класса Thread
- start() — запуск потока.
- sleep(long millis) — приостановка потока на определенное время.
- join() — ожидание завершения потока.
- interrupt() — прерывание потока.
- isAlive() — проверка, работает ли поток.

🔵3. Синхронизация
- Чтобы избежать проблем с конкурентным доступом к данным, используется синхронизация:

synchronized (this) {
// Критическая секция
}

Это гарантирует, что только один поток может выполнить код внутри синхронизированного блока.

🔵4. Пул потоков
- Для управления большим количеством потоков используется пул потоков, который управляется через ExecutorService. Пример:

ExecutorService executor = Executors.newFixedThreadPool(10);
executor.submit(() -> {
// Задача для потока
});
executor.shutdown();


🔵5. Состояния потока
Потоки могут находиться в разных состояниях:
- NEW: Поток создан, но не запущен.
- RUNNABLE: Поток готов к выполнению.
- WAITING: Поток ожидает другого потока.
- TIMED_WAITING: Поток ожидает в течение определенного времени.
- TERMINATED: Поток завершен.

🔵6. Проблемы многопоточности
- Состояние гонки (Race condition) — ситуация, когда несколько потоков одновременно пытаются изменить данные, что может привести к некорректным результатам.
- Блокировки — проблемы с мертвыми блокировками (deadlocks), когда потоки навсегда блокируются, ожидая друг друга.

🔵7. Современные подходы и классы
- ForkJoinPool — используется для параллельного выполнения задач с разделением на подзадачи.
- CountDownLatch, CyclicBarrier, Semaphore — различные утилиты для синхронизации между потоками.

🔵8. Параллельное выполнение коллекций
- Коллекции в Java также могут работать с потоками через parallelStream():

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.parallelStream().forEach(System.out::println);


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

Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

Test Driven Development (TDD) in Java

Creating a Queue Abstract Data Type class
Introduction to Test Doubles Dummies and Stubs
Introduction to Test Doubles Spies
Introduction to Test Doubles Mocks
Introduction to Test Doubles - Fakes

источник

Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

🔥Приглашаем на бесплатный вебинар курса “Software Architect”: «Способы разделения микросервисов»

Когда: 29 октября, 20:00 (мск)

О вебинаре

Узнайте, как проектировать масштабируемые микросервисные архитектуры. На открытом уроке курса Software Architect разберём, как разделять микросервисы, чтобы упростить разработку и повысить устойчивость систем.

Что узнаете:

- Применение DDD для декомпозиции микросервисов.
- Разделение сервисов по бизнес-функциям и данным.
- Практические кейсы для гибкости архитектуры.

Что освоите:

- Принципы эффективной декомпозиции.
- Методы для масштабируемых архитектур.
- Практические инструменты для проектов.

👉 Регистрируйтесь: https://vk.cc/cQB0Hz

Занятие приурочено к старту курса "Software Architect", обучение на котором позволит освоить компетенции архитектора по моделированию и построению отказоустойчивых, масштабируемых информационных систем.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

Библиотека Java разработчика

Java. Сортировки

Java. Сортировка пузырьком.
Java. О сортировке выбором.
Java. Быстрая сортировка. Объяснение на пальцах)
Java. Оценка сложности алгоритмов сортировки.
Java. Сортировка слиянием.
Java. Сортировка подсчетом.
Java. Сортировка вставками.
Java. Сортировка расческой. От пузырька до расчески.

Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

🏗Курс “Software Architect” от OTUS — старт набора в группу обучения!
Если хотите проектировать отказоустойчивые и масштабируемые системы — этот курс для вас!

Почему стоит пойти:

- 100% практики на реальных проектах
- Проектирование гибких архитектур
- Микросервисы, интеграции, Big Data
- Современные паттерны: CQRS, Event Sourcing и др.

💡 Кому подойдёт:

- Разработчикам, готовым выйти на новый уровень
- Архитекторам, углубляющим экспертизу
- Тимлидам и менеджерам

После курса вы сможете:

- Проектировать масштабируемые архитектуры
- Оптимизировать взаимодействие сервисов
- Повышать качество и устойчивость систем

👉 Пройдите вступительное тестирование: https://vk.cc/cQvCcp

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

Библиотека Java разработчика

How to Use LazyConnectionDataSourceProxy with Spring Data JPA

Небольшая заметка о LazyConnectionDataSourceProxy — инструменте, который позволяет получать коннект к БД в Lazy-режиме, то есть в момент непосредственного выполнения запроса, что улучшает утилизацию коннектов и позволяет увеличить пропускную способность приложения.

https://vladmihalcea.com/lazyconnectiondatasourceproxy-spring-data-jpa/

Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

Создаём CRUD REST API в Spring Boot быстро и просто вместе с Amplicode

Статья демонстрирует, как с помощью инструмента Amplicode эффективно создавать REST-контроллеры в приложениях на Spring Boot. Автор показывает процесс генерации CRUD-методов (создание, чтение, обновление, удаление) и делегирования существующих методов в контроллер, что упрощает разработку API. Приводятся практические примеры и рекомендации по использованию Amplicode для ускорения разработки и повышения качества кода.

https://habr.com/ru/companies/haulmont/articles/866060/

📲 Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

⌨️ DSL в Kotlin: от теории к практике

Приглашаем на открытый урок.

🗓 20 ноября в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».

Программа вебинара:


✔️ Что такое DSL и зачем он нужен в современной разработке

✔️ Основные элементы Kotlin для создания DSL: лямбды, infix-функции, расширения

✔️ Практические примеры использования DSL в Gradle, Ktor и TeamCity

Вебинар будет полезен:
Бэкенд-разработчикам на Kotlin, тимлидам и всем, кто хочет писать более чистый и поддерживаемый код.

В результате вебинара:
Научитесь создавать собственные DSL и применять их при разработке

🔗 Ссылка на регистрацию: https://vk.cc/cR97Xt

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

Библиотека Java разработчика

🚀 Подборка Telegram каналов для программистов

Системное администрирование, DevOps 📌
/channel/bash_srv Bash Советы
/channel/win_sysadmin Системный Администратор Windows
/channel/sysadmin_girl Девочка Сисадмин
/channel/srv_admin_linux Админские угодья
/channel/linux_srv Типичный Сисадмин
/channel/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
/channel/linux_odmin Linux: Системный администратор
/channel/devops_star DevOps Star (Звезда Девопса)
/channel/i_linux Системный администратор
/channel/linuxchmod Linux
/channel/sys_adminos Системный Администратор
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux

1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
/channel/DevLab1C 1С:Предприятие 8
/channel/razrab_1C 1C Разработчик
/channel/buh1C_prog 1C Программист | Бухгалтерия и Учёт
/channel/rabota1C_rus Вакансии для программистов 1С

Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
/channel/pythonofff Python академия.
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python

Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах

GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
/channel/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin
/channel/androidspb Разработка под Android: Kotlin, Java.

Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
/channel/game_devv Все о разработке игр

Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов

БигДата, машинное обучение 📌
/channel/bigdata_1 Big Data, Machine Learning

Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста
/channel/lifeproger Жизнь программиста. Авторский канал.

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_2 Хакер Free

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике
/channel/matgeoru Математика | Геометрия | Логика

Excel лайфхак📌
/channel/Excel_lifehack

/channel/mir_teh Мир технологий (Technology World)

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

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

Библиотека Java разработчика

OpenAPI + Spring: ускоряем разработку и повышаем качество API

Разработка REST API — рутинная? Только если без OpenAPI. Узнайте, как избавиться от ручной синхронизации между фронтом, бэком и тестами.

На вебинаре разберём:
• зачем нужна OpenAPI-спецификация и как с ней жить удобно;
• генерацию кода и документации;
• интеграцию OpenAPI в Spring-приложение;
• советы по масштабируемости и поддержке API.

После вебинара вы сможете:
— быстро внедрить OpenAPI в свой проект;
— сократить ошибки на стыке команд;
— улучшить поддержку и документирование микросервисов.

12 ноября в 20:00 открытый урок проходит в преддверие старта курса «Разработчик на Spring Framework». Все участники получат скидку на обучение.

👉 Регистрация бесплатная, но количество мест ограничено — успей занять своё место:
https://vk.cc/cR5B3p

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

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

Библиотека Java разработчика

Шпаргалка по Java

📲 Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

5 ноября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Илья Аров, старший разработчик в МТС, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Илья будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Илье

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

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Реклама.
О рекламодателе.

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

Библиотека Java разработчика

📌 Java Collections

📲 Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

В чем разница между классами StringBuffer и StringBuilder в языке Java?

В языке Java классы StringBuffer и StringBuilder предназначены для работы с изменяемыми строками, но их основное различие заключается в потокобезопасности:

🟢 1. StringBuffer:
- Потокобезопасность: Все методы синхронизированы, что делает этот класс безопасным для использования в многопоточных приложениях.
- Производительность: Из-за синхронизации работает медленнее в однопоточных сценариях, поскольку приходится выполнять дополнительные проверки на блокировку.
- Использование: Подходит, если требуется работа с изменяемыми строками в многопоточном окружении.

🟢 2. StringBuilder:
- Потокобезопасность: Методы не синхронизированы, поэтому StringBuilder не является потокобезопасным.
- Производительность: Быстрее, чем StringBuffer, при работе в однопоточном приложении, поскольку отсутствуют накладные расходы на синхронизацию.
- Использование: Подходит для сценариев с однопоточной обработкой строк.

🟢 3. Общие черты:
- Оба класса используют внутренний изменяемый буфер для хранения данных, что позволяет эффективно добавлять, изменять или удалять содержимое строки.
- Методы, такие как append(), insert(), delete(), reverse() и replace(), одинаково реализованы в обоих классах.

🟢 4. Рекомендации по выбору:
- Используйте StringBuffer, если требуется работа с несколькими потоками и безопасность важнее производительности.
- Используйте StringBuilder, если работаете с однопоточным кодом, чтобы обеспечить максимальную производительность.

🟢 Пример кода:


// StringBuffer (потокобезопасный)
StringBuffer buffer = new StringBuffer("Hello");
buffer.append(" World");
System.out.println(buffer);

// StringBuilder (быстрее в однопоточных сценариях)
StringBuilder builder = new StringBuilder("Hello");
builder.append(" World");
System.out.println(builder);


Выбор между StringBuffer и StringBuilder зависит от контекста использования — многопоточная или однопоточная среда.

Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

Т-Технологии зовут на Стековку

1 ноября в Екатеринбурге, Новосибирске и Нижнем Новгороде стартует квест для ИТ-специалистов — с городским интерактивом, задачами на знание кода и смекалку.

Что нужно делать?
Решать онлайн- и офлайн-задания и получать за это баллы для своего города.

Какой приз?
В городе, который наберет больше всего баллов, устроят вечеринку. А самые активные участники смогут повлиять на выбор тематики и программы.

Как участвовать?
Просто зарегистрируйтесь до 31 октября

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

Библиотека Java разработчика

👩‍💻 Java в Kubernetes за 40 минут: как задеплоить приложение в Minikube

Приглашаем на открытый урок.

🗓 27 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса
«Java Developer. Advanced».

Minikube — личный Kubernetes для тестов. Научитесь деплоить Java-приложения — база для DevOps, CI/CD и продакшна.

Что будет на вебинаре:

✔️ Подготовка Java-приложения к деплою (JAR → Docker image).
✔️Установка Minikube и настройка локального кластера.
✔️Написание манифестов: Deployment, Service, ConfigMap.
✔️Запуск приложения и проверка работоспособности.

В результате вебинара вы:
✔️ Сможете самостоятельно задеплоить Java-приложение в Minikube, написать манифесты и лучше понять, как работает Kubernetes «под капотом».

Кому будет интересно:
Java-разработчикам, начинающим осваивать Kubernetes и DevOps-подходы, а также инженерам, выстраивающим локальные CI/CD практики.

🔗 Ссылка на регистрацию: https://vk.cc/cQIOnN

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

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

Библиотека Java разработчика

В случае, когда метод генерирует исключение NullPointerException в родительском классе, можно ли его переопределить методом, генерирующим RuntimeException?

Еще один каверзный вопрос, связанный с концепциями перегрузки и переопределения.

Ответ: в переопределенном методе можно спокойно генерировать родительский класс исключения NullPointerExceptionRuntimeException, но нельзя сделать то же самое с проверяемым исключением типа Exception.

Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

Что произойдет, если поместить оператор return или System.exit () в блок try/catch?

Это очень популярный вопрос "на засыпку" по Java. Хитрость его в том, что многие программисты считают, что блок finally выполнится в любом случае. Данный вопрос ставит эту концепцию под сомнение, путем помещения оператора return в блок try/catch или вызова из блока try/catch оператора System.exit ().

Ответ на этот каверзный вопрос: блок finally будет выполняться при помещении оператора return в блок try/catch, и не будет выполняться при вызове из блока try/catch оператора System.exit ().

Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

Совет по Spring Boot 💡

Если вы используете DTO в Spring Data/JPA, вы можете автоматизировать отображение между сущностями и DTO с помощью библиотеки Blaze Persistence. Тогда вы сможете воспользоваться преимуществами, например, паттерна Spring repository.

Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

Hibernate JAVA_TIME_USE_DIRECT_JDBC setting

Небольшая статья Vlad Mihalcea о настройке в Hibernate, которая позволяет маппить типы времени из java.time напрямую, без прослойки в виде объекта Timestamp. А еще рассматривается то, какими драйверами для популярных БД это поддерживается.

https://vladmihalcea.com/hibernate-type-java_time_use_direct_jdbc/

Мы в MAX

👉@BookJava

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

Библиотека Java разработчика

🔥 Современная оркестрация Kotlin-приложениями

Приглашаем на открытый урок.

🗓 22 октября в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».

Уже прошла эпоха монолита, когда целые компании занимались разработкой одного необъятного приложения. Сейчас любая информационная система насыщена различными сервисами, а микросервисами уже никого не удивишь.
Обязательным атрибутом собеседований стал вопрос про Saga, хореографию и оркестрацию.
И именно эту тему мы разберем на вебинаре в применении к Kotlin-разработке.

Что будет на вебинаре:
- Обсудим как традиционные оркестраторы типа Airflow или Camunda, так новых игроков.
- На практической части вебинара мы разработаем простое приложение, управляемое оркестратором.

🔗 Ссылка на регистрацию: https://vk.cc/cQqXLS

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…
Subscribe to a channel