Telegram Web Link
🚀 Советы по Spring 🚀

Асинхронная обработка с помощью DeferredResult

Изучите использование DeferredResult и CompletionStage для более тонкого контроля над асинхронной обработкой. 🔥

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/context/request/async/DeferredResult.html

#SpringTip #Java

@javatg
⚡️ Когда я гуглю гайды SpringSecurity в интернете.

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Советы по Java API 🚀

Синхронизация в Java - ReentrantLock

Усовершенствуйте синхронизацию потоков с помощью ReentrantLock в Java.

Для достижения более тонкого контроля и продвинутых механизмов блокировки.

Объект класса ReentrantLock решает те же задачи, что и блок synchronized. Поток висит на вызове метода lock() в ожидании своей очереди занять этот объект. Владеть локом, как и находиться внутри блока synchronized может только один поток одновременно. unlock(), подобно выходу из блока синхронизации, освобождает объект-монитор для других потоков.

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

Шире и возможные режимы блокировки. Кроме обычного ожидающего lock(), вариант tryLock() с параметром ожидает своей очереди только заданное время, а без параметра – вообще не ждет, а только захватывает свободный лок.

Еще одно отличие – свойство fair. Лок с этим свойством обеспечивает «справедливость» очереди: пришедший раньше поток захватывает объект раньше. Блок synchronized не дает никаких гарантий порядка.

📎 Документация

@javatg
⚡️ Алгоритмы

1. Алгоритмы: пузырьковая сортировка на Java
2. Алгоритмы: проверка вложенных скобок на Java
3. Алгоритмы: поиск простых чисел на Java
4. Алгоритмы: бинарный поиск на отсортированном массиве (реализация на Java)
5. Алгоритмы: поиск простых чисел с помощью "решета Эратосфена"
6. Алгоритмы: проверка слов и предложений на палиндром
7. Алгоритм определения анаграмм
8. Алгоритм инвертирования массива на Java
9. Разбор и вычисление арифметических выражений на Java

#video #algorithm #java

https://www.youtube.com/watch?v=P17lCwXm7KE&list=PL95YVJ6LZEP2GHxoZJ6gdbD8JAHw6mABY

@javatg
Получение одного события разными группами получателей в Kafka с Spring Boot

Инструментарий
🟡Spring Boot (2.7.5)
🟡Apache Kafka
🟡Zookeeper
🟡Docker

Архитектура : рис. 2.

Зависимости
Версия Spring: 2.7.5
Версия Java: 11
<dependencies>

📌 Далее

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📢 Только что вышел WireMock Spring Boot 2.1.0!

WireMock Spring Boot значительно упрощает тестирование HTTP-клиентов в интеграционных тестах на основе Spring Boot и Junit 5.

https://github.com/maciejwalkowiak/wiremock-spring-boot

@javatg
🖥 One Billion Row Challenge (1BRC) - это забавное исследование того, насколько далеко можно зайти в современной Java для агрегирования миллиарда строк из текстового файла.

Задействуйте все свои (виртуальные) потоки, обратитесь к SIMD, оптимизируйте GC или используйте любой другой трюк, и создайте самую быструю реализацию для решения этой задачи!


📌 Реализация на .NET

Github

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Порты Docker: что вы на самом деле открываете?

Запуск всего приложения, его окружения и всех его зависимостей по одной команде — разве это не мечта?

Для тех, кто знает, как работает Docker, это невероятный инструмент для безопасного развертывания приложений.

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

Хотя данная статья посвящена проблеме безопасной работы в Docker, моя основная претензия не связана только с Docker.

Есть веские причины, по которым Docker работает именно так, как работает. Он очень неплохо документирован. На странице, посвященной сетевым технологиям, вы увидите строгое предупреждение, а, опустившись немного ниже по странице, найдете следующий абзац, в котором прямо говорится о взаимодействии Docker и брандмауэров:

📌 Читать

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Git Совет 💡

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

Используйте команду 'git mv' для переименования файла.

Переименование файла в редакторе кода приводит к двум отдельным действиям
- удаление старого файла и
- добавление нового)

Команда 'git mv' выполняет переименование за один шаг. Это приводит к более чистой и информативной истории коммитов.

Использование 'git mv' помогает Git'у распознать, что файл был переименован, сохраняя его историю во всех коммитах.

Синтаксис:

git mv <старое имя файла> <новое имя файла>
🚀 Улучшите свое приложение #SpringBoot с помощью сжатия контента! 🚀

Уменьшите размер передаваемых по сети данных. Просто добавьте несколько строк в свой конфиг 🔥

#WebDevelopment #Java #Optimization

@javatg
⚡️ Apache Kafka Learning Resources Repository

Учебные материалы по Apache Kafka. Этот репозиторий создан как централизованный ресурс для всех, кто хочет изучить или углубить свои знания об Apache Kafka, независимо от уровня их опыта.

Github

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Обнаружение и предотвращение утечек памяти в Java

Несмотря на наличие в Java надежной автоматической сборки мусора, утечки памяти в этом языке остаются сложной проблемой для разработчиков.

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

Со временем это может привести к значительному снижению производительности приложения и даже к его аварийному завершению из-за исключения OutOfMemoryError. Цель данной статьи — разобраться в тонкостях утечек памяти в Java, изучить методы их обнаружения и стратегии предотвращения.

Читать

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🦝 Kotlin Explorer

Полезный инструмент для быстрого и эфективного реверс инжениринга Kotlin кода в Java байткод, Android DEX и OAT.

Github

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Интеграция Spring Boot и Apache Camel

Apache Camel - это интеграционный фреймворк с открытым исходным кодом, который предоставляет инструменты и API для соединения различных систем.

С помощью Apache Camel разработчики могут создавать масштабируемые и надежные интеграционные решения, используя различные шаблоны, протоколы и форматы обмена сообщениями. #apachecamel #springboot #java

https://blackslate.io/articles/spring-boot-and-apache-camel-integration

@javatg
Please open Telegram to view this post
VIEW IN TELEGRAM
Совет по Java ☕️

В Java 22 появился новый форматированный тип `ListFormat`.

ListFormat — это новый форматтер, который позволяет форматировать список строк символов в соответствии с локалью в соответствии со стандартом Unicode.

Пример :

var list = List.of("Black", "White", "Red");
var formatter = ListFormat.getInstance();
System.out.println(list);
// [Black, White, Red]

Он создает или разбирает список конкатенированных строк.

Предусмотрено 3 типа конкатенации: STANDARD, OR, и UNIT, и 3 стиля для каждого типа: FULL, SHORT и NARROW.

#java22

@javatg
2024/11/17 10:54:46
Back to Top
HTML Embed Code: