Генерация контрактов OpenApi или прикладной API first: гайд по генерации в Spring Boot приложении
В этой статье будет описана только техника хранения спецификаций и конкретные шаги по их подключению в приложении. Для упрощения здесь не будут описаны некоторые принципы важные для использования в production коммерческих проектов.
https://habr.com/ru/articles/770528/
В этой статье будет описана только техника хранения спецификаций и конкретные шаги по их подключению в приложении. Для упрощения здесь не будут описаны некоторые принципы важные для использования в production коммерческих проектов.
https://habr.com/ru/articles/770528/
Хабр
Генерация контрактов OpenApi или прикладной API first: гайд по генерации в Spring Boot приложении
В этой статье будет описана только техника хранения спецификаций и конкретные шаги по их подключению в приложении. Для упрощения здесь не будут описаны некоторые принципы важные для использования в...
👍2
Польза создания однородных задач для параллельного вычисления
Очень важная мысль из книги "Java concurrency in action"! "Реальная отдача от разделения рабочей нагрузки программы на задачи достигается при наличии большого числа независимых, однородных задач, которые могут обрабатываться конкурентно."
https://habr.com/ru/articles/779188/
Очень важная мысль из книги "Java concurrency in action"! "Реальная отдача от разделения рабочей нагрузки программы на задачи достигается при наличии большого числа независимых, однородных задач, которые могут обрабатываться конкурентно."
https://habr.com/ru/articles/779188/
Хабр
Польза создания однородных задач для параллельного вычисления
Как правильно использовать возможности параллельного программирования? Зачем программистам математика и зачем знать алгоритмы? Представьте что у вас есть 10 задач. Каждая пронумерована от 1 до 10, а...
🔥2
Микросервисы на основе событий с Kafka Streams и Spring Boot
Статья основана на публикациях Confluent о том, как можно реализовать микросервисную архитектуру на основе событий с помощью Kafka Streams и KSQL.
https://habr.com/ru/articles/775900/
Статья основана на публикациях Confluent о том, как можно реализовать микросервисную архитектуру на основе событий с помощью Kafka Streams и KSQL.
https://habr.com/ru/articles/775900/
Хабр
Микросервисы на основе событий с Kafka Streams и Spring Boot
Предисловие Всем привет! Это моя первая статья на Habr, так что не судите строго за стиль, а вот по содержанию буду рад любой конструктивной критике. Статья основана на публикациях Confluent о том,...
👍1🔥1👏1
Операция «K». Ищем баги в коде IntelliJ IDEA
Интересно учиться на чужих ошибках. Давайте посмотрим какие ошибки были выявлены в IntelliJ IDEA.
https://habr.com/ru/companies/pvs-studio/articles/780560/
Интересно учиться на чужих ошибках. Давайте посмотрим какие ошибки были выявлены в IntelliJ IDEA.
https://habr.com/ru/companies/pvs-studio/articles/780560/
Хабр
Операция «K». Ищем баги в коде IntelliJ IDEA
В этой статье мы проверим проект IntelliJ IDEA Community Edition на наличие ошибок и отправим наши правки разработчикам. Крупный проект, Open Source база и использование статического анализатора при...
👍2🔥1
В Spring Boot 3.2 появилась поддержка Virtual Threads и новых RestClient и JdbcClient
Оперативненько надо признать )) Helidon задал тренд. Помимо виртуальных потоков там появилась еще поддержка Coordinated Restore at Checkpoint (CRaC).
Для того чтобы использовать виртуальные потоки в Spring Boot 3.2 вам нужно будет добавить в конфигурацию параметр
Оперативненько надо признать )) Helidon задал тренд. Помимо виртуальных потоков там появилась еще поддержка Coordinated Restore at Checkpoint (CRaC).
Для того чтобы использовать виртуальные потоки в Spring Boot 3.2 вам нужно будет добавить в конфигурацию параметр
spring.threads.virtual.enabled
и выставить ему true. Не забываем что все это будет работать только на Java 21 ))
Очень круто! Я безмерно рад ))
https://www.infoq.com/news/2023/12/spring-boot-virtual-threads/
InfoQ
Spring Boot 3.2 Delivers Support for Virtual Threads and Modern RestClient and JdbcClient
The Spring Boot team released Spring Boot 3.2 in November 2023. This latest release is packed with features, the most noteworthy of which is the support for Virtual Threads and Coordinated Restore at Checkpoint (CRaC). Other features include SSL Bundle reloading…
🔥6❤2
Интеграция Keycloak в приложение Spring Boot 3 с использованием протокола OAuth2.0
В данной статье представлен процесс интеграции Keycloak в приложение Spring Boot 3 в качестве сервера авторизации с использованием протокола OAuth2.
Keycloak - это средство с открытым исходным кодом, предоставляющее полнофункциональную платформу для управления идентичностью и доступом.
https://habr.com/ru/companies/axenix/articles/780422/
В данной статье представлен процесс интеграции Keycloak в приложение Spring Boot 3 в качестве сервера авторизации с использованием протокола OAuth2.
Keycloak - это средство с открытым исходным кодом, предоставляющее полнофункциональную платформу для управления идентичностью и доступом.
https://habr.com/ru/companies/axenix/articles/780422/
Хабр
Интеграция Keycloak в приложение Spring Boot 3 с использованием протокола OAuth2.0
В современном мире веб-разработки обеспечение безопасности пользовательских идентификаторов и управление доступом к ресурсам становятся все более важными задачами. Один из мощных инструментов,...
👍3🔥3
Идемпотентность: больше, чем кажется
Идемпотентность запроса — это обеспечение возможности многократного вызова запроса с гарантией того, что состояние системы изменится только один раз.
В статье приведен пример реализации на Spring.
https://habr.com/ru/companies/domclick/articles/779872/
Идемпотентность запроса — это обеспечение возможности многократного вызова запроса с гарантией того, что состояние системы изменится только один раз.
В статье приведен пример реализации на Spring.
https://habr.com/ru/companies/domclick/articles/779872/
Хабр
Идемпотентность: больше, чем кажется
Друзья, всем привет! Идемпотентность в проектировании API — не просто формальность. Это свойство, часто рассматриваемое как способ получения одинакового ответа на повторяющийся запрос, на самом деле...
👍2🔥2
Быстрый старт. SpringBoot + RabbitMQ
Довольно простой и понятный пример работы с RabbitMQ. Для демонстрации сделано одно приложение для отправки сообщений и два на чтение.
https://habr.com/ru/articles/782234/
Довольно простой и понятный пример работы с RabbitMQ. Для демонстрации сделано одно приложение для отправки сообщений и два на чтение.
https://habr.com/ru/articles/782234/
Хабр
Быстрый старт. SpringBoot + RabbitMQ
Ссылка на проект Было уже достаточно туториалов на тему Rabbit + Spring. В данной статье чуть обновлено описание быстрого запуска очередей. Если ты только начинаешь разбираться с очередями добро...
👍5
Spring prototype при помощи Lookup
В статье разбирается пример работы с бином со скоупом prototype при помощи аннотации @Lookup.
На мой вкус пример выбран не очень удачно, но суть работы аннотации показана.
https://habr.com/ru/articles/782656/
В статье разбирается пример работы с бином со скоупом prototype при помощи аннотации @Lookup.
На мой вкус пример выбран не очень удачно, но суть работы аннотации показана.
https://habr.com/ru/articles/782656/
Хабр
Spring prototype при помощи Lookup
1. Введение У бинов в Spring бывают разные области действия. Стандартной областью является Singleton. Singleton — это область действия, при котором в контейнере Spring создает единственный экземпляр...
👍3
Поздравляю всех с Новым Годом! Желаю исполнения всех ваших желаний и большого здоровья! Пусть ваш код всегда компилируется с первого раза и не содержит багов )))
🎄12❤4👏4
ChatGPT на Java. Пишем «Hello World» на Spring AI
Spring AI предлагает абстракции в виде функциональных интерфейсов, благодаря которым можно быстро и с разными параметрами вызывать нейронки. Основа - это ChatClient с имплементациями для OpenAI и Azure.
https://habr.com/ru/articles/784128/
Spring AI предлагает абстракции в виде функциональных интерфейсов, благодаря которым можно быстро и с разными параметрами вызывать нейронки. Основа - это ChatClient с имплементациями для OpenAI и Azure.
https://habr.com/ru/articles/784128/
Хабр
ChatGPT на Java. Пишем «Hello World» на Spring AI
В преддверии Нового Года, начинаем осваивать генеративные сети с помощью привычного всем Java разработчикам фреймворка Spring. Несколько месяцев назад в Spring добавили модуль AI , который упрощает...
🔥3👍1👎1
JWT-аутентификация при помощи Spring Boot 3 и Spring Security 6
Новая версия, Spring Security 6, изменяет некоторые базовые реализации, а русскоязычных материалов на эту тему очень мало. В этой статье мы рассмотрим JWT-аутентификацию и авторизацию с помощью Spring Boot 3 и Spring Security 6, чтобы помочь начинающем разработчикам разобраться и начать пользоваться базовым функционалом этой библиотеки. Цель статьи - показать, как использовать JWT-аутентификацию с API-интерфейсами. Будет разобрано как базовое использование, так и ролевая модель.
https://habr.com/ru/articles/784508/
Новая версия, Spring Security 6, изменяет некоторые базовые реализации, а русскоязычных материалов на эту тему очень мало. В этой статье мы рассмотрим JWT-аутентификацию и авторизацию с помощью Spring Boot 3 и Spring Security 6, чтобы помочь начинающем разработчикам разобраться и начать пользоваться базовым функционалом этой библиотеки. Цель статьи - показать, как использовать JWT-аутентификацию с API-интерфейсами. Будет разобрано как базовое использование, так и ролевая модель.
https://habr.com/ru/articles/784508/
Хабр
JWT-аутентификация при помощи Spring Boot 3 и Spring Security 6
Введение Если не любите теорию, переходите сразу сюда . Переход от базовых приложений к более сложным требует использования Spring Security для обеспечения безопасности. Новая версия, Spring Security...
🔥2❤1
Создание и использование BOM в Gradle
Бывает так, что две библиотеки, например X и Y, требуют разные версии одной и той же транзитивной зависимости Z (snakeyaml, Google Guava, Apache Commons и т.п.). Такая ситуация называется конфликтом (или jar hell, когда это происходит в большом количестве).
В Maven разрешение конфликтов происходит не так как в Gradle. В нем по дефолту выбирается самая «свежая» версия из конфликтующих зависимостей.
Для быстрой проверки там есть удобная команда
Бывает так, что две библиотеки, например X и Y, требуют разные версии одной и той же транзитивной зависимости Z (snakeyaml, Google Guava, Apache Commons и т.п.). Такая ситуация называется конфликтом (или jar hell, когда это происходит в большом количестве).
В Maven разрешение конфликтов происходит не так как в Gradle. В нем по дефолту выбирается самая «свежая» версия из конфликтующих зависимостей.
Для быстрой проверки там есть удобная команда
./gradlew dependencyInsight --dependency org.yaml:snakeyaml
https://habr.com/ru/articles/784784/
Хабр
Создание и использование BOM в Gradle
Привет Хабр! В каждой компании (а если она крупная, то, скорее всего, в каждом подразделении) должна быть выстроена культура использования BOM ( bill of materials ) для управления версиями...
👍2🔥2
JDK 21: The GCs keep getting better.
Статья про улучшение производительности сборки мусора в JDK 21 по сравнению с JDK 8. Сравнение делается бенчмарком SPECjbb® 20151 для демонстрации прироста производительности и обсуждает влияние новых фич.
https://kstefanj.github.io/2023/12/13/jdk-21-the-gcs-keep-getting-better.html
Статья про улучшение производительности сборки мусора в JDK 21 по сравнению с JDK 8. Сравнение делается бенчмарком SPECjbb® 20151 для демонстрации прироста производительности и обсуждает влияние новых фич.
https://kstefanj.github.io/2023/12/13/jdk-21-the-gcs-keep-getting-better.html
Stefan Johansson’s Blog
JDK 21: The GCs keep getting better
A couple of years ago I wrote a post about the GC progress between JDK 8 and JDK 17 for our three main GCs. With the JDK 21 release this fall, we now have a new LTS release to benchmark and generate some GC performance charts for. JDK 21 and the other releases…
👍5
Class Data Sharing (CDS) в Spring 6.1.
Довольно интересная фича появилась начиная с Spring Framework 6.1. Class Data Sharing (CDS) позволяет сократить время старта приложения и потребляемую память за счет кеширования метаданных классов.
Технически можно кешировать метаданные и прикладных классов.
https://spring.io/blog/2023/12/04/cds-with-spring-framework-6-1/
Довольно интересная фича появилась начиная с Spring Framework 6.1. Class Data Sharing (CDS) позволяет сократить время старта приложения и потребляемую память за счет кеширования метаданных классов.
Технически можно кешировать метаданные и прикладных классов.
https://spring.io/blog/2023/12/04/cds-with-spring-framework-6-1/
CDS with Spring Framework 6.1
Level up your Java code and explore what Spring can do for you.
🔥2😱1
String Templates in Java – why should you care?
Шаблоны строк это preview feature, которая впервые была представлена в Java 21. Она существенно упростит конкантенацию строк, а также повысит безопасность.
В статье детально разбирается какие альтернативы у нас были до этой фичи и как она нам поможет в типовых кейсах.
https://blog.jetbrains.com/idea/2023/11/string-templates-in-java-why-should-you-care/
Шаблоны строк это preview feature, которая впервые была представлена в Java 21. Она существенно упростит конкантенацию строк, а также повысит безопасность.
В статье детально разбирается какие альтернативы у нас были до этой фичи и как она нам поможет в типовых кейсах.
https://blog.jetbrains.com/idea/2023/11/string-templates-in-java-why-should-you-care/
The JetBrains Blog
String Templates in Java - why should you care? | The IntelliJ IDEA Blog
TLDR; The existing String concatenation options are difficult to work with and could be error prone. String Templates (a preview feature introduced in Java 21) greatly improves how we create strings i
🔥4
Virtual Threads for Lightweight Concurrency and Other JVM Enhancements
Статья Рона Пресслера, который является архитектором в Oracle Java Platform Group, а также тех лидом проекта Loom в Oracle. По ссылке есть видео выступления, а ниже транскрипт для тех кто любит читать. Очень интересное выступление. Рекомендую посмотреть.
https://www.infoq.com/presentations/virtual-threads-lightweight-concurrency/
Статья Рона Пресслера, который является архитектором в Oracle Java Platform Group, а также тех лидом проекта Loom в Oracle. По ссылке есть видео выступления, а ниже транскрипт для тех кто любит читать. Очень интересное выступление. Рекомендую посмотреть.
https://www.infoq.com/presentations/virtual-threads-lightweight-concurrency/
InfoQ
Virtual Threads for Lightweight Concurrency and Other JVM Enhancements
Ron Pressler presents how and why Java abstracted its existing thread construct to provide an alternative user-mode implementation of threads as opposed to offering a new concurrency construct. Ron also briefly mentions other transformative features recently…
🔥5
Project Loom. Не только виртуальные потоки
В статье мало «технического мяса», но она больше интересна комментариями под ней. Там идет дискуссия в которой сравнивают корутины Java и Kotlin.
В самой статье по факту рекламируется инструмент автора построенный вокруг непубличного API из JDK
В статье мало «технического мяса», но она больше интересна комментариями под ней. Там идет дискуссия в которой сравнивают корутины Java и Kotlin.
В самой статье по факту рекламируется инструмент автора построенный вокруг непубличного API из JDK
jdk.internal.vm.Continuation
https://habr.com/ru/articles/785334/
Хабр
Project Loom. Не только виртуальные потоки
Начиная с Java 19 нам доступны виртуальные потоки , которые отличаются от обычных, тем что умеют освобождать поток операционной системы во время блокирующих I/O операций. Для этого на уровне JVM был...
👍2🥰1
11 reasons the new Java is not like the old Java
Хорошее овервью ключевых новых технологий без глубокого погружения в каждую.
Рассмотрены:
1 Virtual threads
2 Structured concurrency
3 Immutable data
4 Garbage collection
5 Pattern matching
6 Streamlined syntax
7 Sealed classes
8 Foreign functions and memory
9 The Vector API
10 Improved null processing
https://www.infoworld.com/article/3711866/11-reasons-the-new-java-is-not-like-the-old-java.html#tk.rss_java
Хорошее овервью ключевых новых технологий без глубокого погружения в каждую.
Рассмотрены:
1 Virtual threads
2 Structured concurrency
3 Immutable data
4 Garbage collection
5 Pattern matching
6 Streamlined syntax
7 Sealed classes
8 Foreign functions and memory
9 The Vector API
10 Improved null processing
https://www.infoworld.com/article/3711866/11-reasons-the-new-java-is-not-like-the-old-java.html#tk.rss_java
InfoWorld
11 reasons the new Java is not like the old Java
Java is not the language it used to be, and that is mostly a good thing. Here are eleven ways Java is evolving to meet the challenges of the future.
👍3🔥3
Планы Oracle по улучшению Java на 2024 год
Рассказано о том какие улучшения запланированы в таких проектах OpenJDK как Amber, Babylon, Leyden, Lilliput, Loom, Panama, Valhalla и на сколько жизнь разработчика станет прекрасна.
https://inside.java/2024/01/18/newscast-61/
Рассказано о том какие улучшения запланированы в таких проектах OpenJDK как Amber, Babylon, Leyden, Lilliput, Loom, Panama, Valhalla и на сколько жизнь разработчика станет прекрасна.
https://inside.java/2024/01/18/newscast-61/
inside.java
Java's Plans for 2024 - Inside Java Newscast #61
In 2024, Java keeps evolving. Let's see what the OpenJDK projects Amber, Babylon, Leyden, Lilliput, Loom, Panama, and Valhalla plan for this year and how that will push Java forward. Whether pattern matching or other language improvements, interacti…
👍3🔥2🤔1