AI добрался и до JVM
Разработанная командой JVM в компании Oracle, Oracle Java Management Cloud Service представила искусственный интеллект для анализа и генерации рекомендаций по настройке, чтобы улучшить производительность java-приложений. В ролике показано, как он работает и как им пользоваться.
https://youtu.be/HwCW1RjQfd4
Разработанная командой JVM в компании Oracle, Oracle Java Management Cloud Service представила искусственный интеллект для анализа и генерации рекомендаций по настройке, чтобы улучшить производительность java-приложений. В ролике показано, как он работает и как им пользоваться.
https://youtu.be/HwCW1RjQfd4
YouTube
Where the JVM is Entering the Era of AI Performance Tuning! By Ana Maria Mihalceanu
Developed by the JVM team at Oracle, Oracle Java Management Cloud Service (JMS) recently introduced a performance AI engine to analyze and generate tuning recommendations to improve the performance of Java applications.
Core Features:
JMS collects JVM telemetry…
Core Features:
JMS collects JVM telemetry…
Helidon 4 вышел, а никто и не заметил
Про Helidon 4 уже была ссылка на канале. Хочу с вами поделиться еще одной. Статья примечательна в том числе сравнением Helidon 4 и Spring. Можно сказать, что виртуальные потоки просто «творят чудеса».
https://habr.com/ru/companies/bar/articles/772726/
Про Helidon 4 уже была ссылка на канале. Хочу с вами поделиться еще одной. Статья примечательна в том числе сравнением Helidon 4 и Spring. Можно сказать, что виртуальные потоки просто «творят чудеса».
https://habr.com/ru/companies/bar/articles/772726/
Хабр
Helidon 4 вышел, а никто и не заметил
Однажды на Joker мы собрали BOF под названием "Java EE vs Spring". Дуэль была оформлена по всем правилам, сообщество Spring пришло в полном составе... а вот второй дуэлянт предпочел не появиться....
Разработка высоконагруженного игрового WebSocket сервера на Java, Netty с поддержкой BattleRoyale/Matchmaking
Я люблю Netty. В статье неплохо описан процесс разработки бекенда для игрового сервера. Версия Java правда выбрана странная.
https://habr.com/ru/articles/774322/
Я люблю Netty. В статье неплохо описан процесс разработки бекенда для игрового сервера. Версия Java правда выбрана странная.
https://habr.com/ru/articles/774322/
Хабр
Разработка высоконагруженного игрового WebSocket сервера на Java, Netty с поддержкой BattleRoyale/Matchmaking
Всем доброго времени суток. В предыдущей статье я затронул тему клиентской разработки браузерной игры. В этой же публикации попробую пролить свет на детали разработки мультиплеера, а именно -...
Garbage Collection и JVM
JVM работает как хорошо отлаженный механизм, автоматически распределяя и освобождая память. Это и есть суть Garbage Collection. Это процесс, который автоматически находит и удаляет объекты, которые больше не используются вашим приложением. Благодаря этому, разработчики могут сосредоточиться на логике приложения, не беспокоясь о ручном управлении памятью.
Знание того, как работает GC и JVM, необходимо каждому Java-разработчику. Правильное управление ресурсами напрямую влияет на производительность и стабильность приложений.
https://habr.com/ru/companies/otus/articles/776342/
JVM работает как хорошо отлаженный механизм, автоматически распределяя и освобождая память. Это и есть суть Garbage Collection. Это процесс, который автоматически находит и удаляет объекты, которые больше не используются вашим приложением. Благодаря этому, разработчики могут сосредоточиться на логике приложения, не беспокоясь о ручном управлении памятью.
Знание того, как работает GC и JVM, необходимо каждому Java-разработчику. Правильное управление ресурсами напрямую влияет на производительность и стабильность приложений.
https://habr.com/ru/companies/otus/articles/776342/
Хабр
Garbage Collection и JVM
Привет, Хабр! JVM работает как хорошо отлаженный механизм, автоматически распределяя и освобождая память. Это и есть суть Garbage Collection. Это процесс, который автоматически находит и удаляет...
Java 20: огромные разреженные сегменты памяти
Знаете ли вы, что можно выделять сегменты памяти, которые больше, чем физический размер оперативной памяти вашего компьютера, и даже больше, чем размер всей вашей файловой системы?
Новая функция Foreign Function and Memory, которая во второй раз появляется в Java 20, позволяет сопоставлять большие сегменты памяти с файлом.
https://habr.com/ru/articles/710664/
Знаете ли вы, что можно выделять сегменты памяти, которые больше, чем физический размер оперативной памяти вашего компьютера, и даже больше, чем размер всей вашей файловой системы?
Новая функция Foreign Function and Memory, которая во второй раз появляется в Java 20, позволяет сопоставлять большие сегменты памяти с файлом.
https://habr.com/ru/articles/710664/
Хабр
Java 20: огромные разреженные сегменты памяти
Знаете ли вы, что можно выделять сегменты памяти, которые больше, чем физический размер оперативной памяти вашего компьютера, и даже больше, чем размер всей вашей файловой системы? Прочтите эту статью...
Генерация контрактов OpenApi или прикладной API first: гайд по генерации в Spring Boot приложении
В этой статье будет описана только техника хранения спецификаций и конкретные шаги по их подключению в приложении. Для упрощения здесь не будут описаны некоторые принципы важные для использования в production коммерческих проектов.
https://habr.com/ru/articles/770528/
В этой статье будет описана только техника хранения спецификаций и конкретные шаги по их подключению в приложении. Для упрощения здесь не будут описаны некоторые принципы важные для использования в production коммерческих проектов.
https://habr.com/ru/articles/770528/
Хабр
Генерация контрактов OpenApi или прикладной API first: гайд по генерации в Spring Boot приложении
В этой статье будет описана только техника хранения спецификаций и конкретные шаги по их подключению в приложении. Для упрощения здесь не будут описаны некоторые принципы важные для использования в...
Польза создания однородных задач для параллельного вычисления
Очень важная мысль из книги "Java concurrency in action"! "Реальная отдача от разделения рабочей нагрузки программы на задачи достигается при наличии большого числа независимых, однородных задач, которые могут обрабатываться конкурентно."
https://habr.com/ru/articles/779188/
Очень важная мысль из книги "Java concurrency in action"! "Реальная отдача от разделения рабочей нагрузки программы на задачи достигается при наличии большого числа независимых, однородных задач, которые могут обрабатываться конкурентно."
https://habr.com/ru/articles/779188/
Хабр
Польза создания однородных задач для параллельного вычисления
Как правильно использовать возможности параллельного программирования? Зачем программистам математика и зачем знать алгоритмы? Представьте что у вас есть 10 задач. Каждая пронумерована от 1 до 10, а...
Микросервисы на основе событий с 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 о том,...
Операция «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 база и использование статического анализатора при...
В 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…
Интеграция 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
В современном мире веб-разработки обеспечение безопасности пользовательских идентификаторов и управление доступом к ресурсам становятся все более важными задачами. Один из мощных инструментов,...
Идемпотентность: больше, чем кажется
Идемпотентность запроса — это обеспечение возможности многократного вызова запроса с гарантией того, что состояние системы изменится только один раз.
В статье приведен пример реализации на Spring.
https://habr.com/ru/companies/domclick/articles/779872/
Идемпотентность запроса — это обеспечение возможности многократного вызова запроса с гарантией того, что состояние системы изменится только один раз.
В статье приведен пример реализации на Spring.
https://habr.com/ru/companies/domclick/articles/779872/
Хабр
Идемпотентность: больше, чем кажется
Друзья, всем привет! Идемпотентность в проектировании API — не просто формальность. Это свойство, часто рассматриваемое как способ получения одинакового ответа на повторяющийся запрос, на самом деле...
Быстрый старт. SpringBoot + RabbitMQ
Довольно простой и понятный пример работы с RabbitMQ. Для демонстрации сделано одно приложение для отправки сообщений и два на чтение.
https://habr.com/ru/articles/782234/
Довольно простой и понятный пример работы с RabbitMQ. Для демонстрации сделано одно приложение для отправки сообщений и два на чтение.
https://habr.com/ru/articles/782234/
Хабр
Быстрый старт. SpringBoot + RabbitMQ
Ссылка на проект Было уже достаточно туториалов на тему Rabbit + Spring. В данной статье чуть обновлено описание быстрого запуска очередей. Если ты только начинаешь разбираться с очередями добро...
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 создает единственный экземпляр...
Поздравляю всех с Новым Годом! Желаю исполнения всех ваших желаний и большого здоровья! Пусть ваш код всегда компилируется с первого раза и не содержит багов )))
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 , который упрощает...
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...
Создание и использование 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 ) для управления версиями...
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…
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.