Устойчивость микросервисных Spring приложений: роль аннотации Transactional в предотвращении утечки соединений
В новом переводе от команды Spring АйО вы узнаете, как аннотация
Читать: https://habr.com/ru/companies/spring_aio/articles/827642/?utm_campaign=827642
@a_cup_of_java
___
Другие наши проекты
В новом переводе от команды Spring АйО вы узнаете, как аннотация
@Transactional
помогла решить проблему с утечкой соединений и обеспечила стабильность системы.Читать: https://habr.com/ru/companies/spring_aio/articles/827642/?utm_campaign=827642
@a_cup_of_java
___
Другие наши проекты
Работа с информерами Java kubernetes client
Описание создания проекта с нуля
Создание клиентов API для получения объектов kubernetes
Инициализация информеров для получения Pods, Nodes и Ingresses
Создание Listener для запуска информеров
Извлечение данных из информеров и их подготовка для отправки через API
Проверка результата
Читать: https://habr.com/ru/companies/glowbyte/articles/827794/?utm_campaign=827794
@a_cup_of_java
___
Другие наши проекты
Описание создания проекта с нуля
Создание клиентов API для получения объектов kubernetes
Инициализация информеров для получения Pods, Nodes и Ingresses
Создание Listener для запуска информеров
Извлечение данных из информеров и их подготовка для отправки через API
Проверка результата
Читать: https://habr.com/ru/companies/glowbyte/articles/827794/?utm_campaign=827794
@a_cup_of_java
___
Другие наши проекты
Как мы OpenAPI в приложениях используем (Spring Boot, Typescript)
Хочу рассказать, как мы реализуем на практике контакты по спецификации OpenAPI, стараемся следовать подходу Contract First и в целом разрабатывать так, чтобы удобно было как разработчикам в команде, так и всем, кто использует наши сервисы. В статье описана генерация Java и typescript, а так же конфигурации maven.
Контракты OpenAPI - спецификация, которая позволяет описывать интерфейс взаимодействия с сервисом в виде REST. Или не REST, тут зависит от задачи и ее реализации.
Вдаваться в историю появления спецификации и ее развития не буду. Если кратко - эта спецификация позволяет описывать контракт взаимодействия с сервисом с помощью yaml-синтаксиса. А с помощью OpenAPI generators можно генерировать из такого описания клиент-серверные интерфейсы на различных языках. На данный момент последняя версия OpenAPI - 3.1.0 - является наиболее удобной и структурированной, позволяет описывать контракт с помощью JSON. Мы осознанно используем версию 3.0.3. Почему? Расскажу далее.
Читать: https://habr.com/ru/companies/alfastrah/articles/820513/?utm_campaign=820513
@a_cup_of_java
___
Другие наши проекты
Хочу рассказать, как мы реализуем на практике контакты по спецификации OpenAPI, стараемся следовать подходу Contract First и в целом разрабатывать так, чтобы удобно было как разработчикам в команде, так и всем, кто использует наши сервисы. В статье описана генерация Java и typescript, а так же конфигурации maven.
Контракты OpenAPI - спецификация, которая позволяет описывать интерфейс взаимодействия с сервисом в виде REST. Или не REST, тут зависит от задачи и ее реализации.
Вдаваться в историю появления спецификации и ее развития не буду. Если кратко - эта спецификация позволяет описывать контракт взаимодействия с сервисом с помощью yaml-синтаксиса. А с помощью OpenAPI generators можно генерировать из такого описания клиент-серверные интерфейсы на различных языках. На данный момент последняя версия OpenAPI - 3.1.0 - является наиболее удобной и структурированной, позволяет описывать контракт с помощью JSON. Мы осознанно используем версию 3.0.3. Почему? Расскажу далее.
Читать: https://habr.com/ru/companies/alfastrah/articles/820513/?utm_campaign=820513
@a_cup_of_java
___
Другие наши проекты
Forwarded from Типичный программист
Please open Telegram to view this post
VIEW IN TELEGRAM
Article: Java Virtual Threads: A Case Study
This article explores JDK 21's virtual threads, comparing their performance with Open Liberty's thread pool. It covers key findings like throughput, ramp-up times, and memory footprint. Despite advantages, virtual threads showed unexpected performance issues, especially in CPU-intensive workloads. This analysis guides Java developers on when and how to use virtual threads in their applications.
By Gary DeVal, Vijay Sundaresan, Rich Hagarty, Laura Cowen
Read: https://www.infoq.com/articles/java-virtual-threads-a-case-study/
@a_cup_of_java
___
Другие наши проекты
This article explores JDK 21's virtual threads, comparing their performance with Open Liberty's thread pool. It covers key findings like throughput, ramp-up times, and memory footprint. Despite advantages, virtual threads showed unexpected performance issues, especially in CPU-intensive workloads. This analysis guides Java developers on when and how to use virtual threads in their applications.
By Gary DeVal, Vijay Sundaresan, Rich Hagarty, Laura Cowen
Read: https://www.infoq.com/articles/java-virtual-threads-a-case-study/
@a_cup_of_java
___
Другие наши проекты
Умножение Монтгомери
Деление целых чисел — это долго и сложно. Вычислять остаток от деления — нисколько не проще. При этом в спортивном программировании, да и в прикладной математике типа криптографии, задача умножения чисел по модулю встречается повсеместно.
Один из вариантов эффективного решения — умножать по модулю, вообще при этом не используя операции деления, с помощью алгоритма Монтгомери.
Про него я и хотел бы поговорить.
Читать: https://habr.com/ru/articles/827880/?utm_campaign=827880
@a_cup_of_java
___
Другие наши проекты
Деление целых чисел — это долго и сложно. Вычислять остаток от деления — нисколько не проще. При этом в спортивном программировании, да и в прикладной математике типа криптографии, задача умножения чисел по модулю встречается повсеместно.
Один из вариантов эффективного решения — умножать по модулю, вообще при этом не используя операции деления, с помощью алгоритма Монтгомери.
Про него я и хотел бы поговорить.
Читать: https://habr.com/ru/articles/827880/?utm_campaign=827880
@a_cup_of_java
___
Другие наши проекты
Переписывая историю: от инструментов версионирования БД к практике
Пожалуй, почти каждый Spring разработчик сталкивается в своей практике с версионированием баз данных. На эту тему есть отличный доклад на Joker 2023 от Александра Шустанова, в котором спикер сравнивает 2 самых популярных инструмента для миграций БД: Flyway и Liquibase. Редакция Spring АйО приводит транскрипт доклада, для тех, у кого нет 45 минут для просмотра видео.
В статье вас ожидает обзор ключевых особенностей Liquibase и Flyway, а также сравнение их возможностей. Расскажем, когда нужно создавать миграции, как облегчить этот процесс и уменьшить количество ошибок. Осветим некоторые малоизвестные возможности этих инструментов и развеем мифы о других.
Читать: https://habr.com/ru/companies/spring_aio/articles/827976/?utm_campaign=827976
@a_cup_of_java
___
Другие наши проекты
Пожалуй, почти каждый Spring разработчик сталкивается в своей практике с версионированием баз данных. На эту тему есть отличный доклад на Joker 2023 от Александра Шустанова, в котором спикер сравнивает 2 самых популярных инструмента для миграций БД: Flyway и Liquibase. Редакция Spring АйО приводит транскрипт доклада, для тех, у кого нет 45 минут для просмотра видео.
В статье вас ожидает обзор ключевых особенностей Liquibase и Flyway, а также сравнение их возможностей. Расскажем, когда нужно создавать миграции, как облегчить этот процесс и уменьшить количество ошибок. Осветим некоторые малоизвестные возможности этих инструментов и развеем мифы о других.
Читать: https://habr.com/ru/companies/spring_aio/articles/827976/?utm_campaign=827976
@a_cup_of_java
___
Другие наши проекты
Неожиданности в авторизации. Что скрывает Keycloak?
Авторизация и регистрация пользователей — важная часть приложения как для юзеров, так и для безопасности. Но какие неожиданности содержит исходный код популярного Open Source решения для авторизации, и как они могут повлиять на работу приложения?
Читать: https://habr.com/ru/companies/pvs-studio/articles/828406/?utm_campaign=828406
@a_cup_of_java
___
Другие наши проекты
Авторизация и регистрация пользователей — важная часть приложения как для юзеров, так и для безопасности. Но какие неожиданности содержит исходный код популярного Open Source решения для авторизации, и как они могут повлиять на работу приложения?
Читать: https://habr.com/ru/companies/pvs-studio/articles/828406/?utm_campaign=828406
@a_cup_of_java
___
Другие наши проекты
Редкие языки программирования: зачем они нужны и что на них пишут
Современные разработчики все чаще обращаются к редким языкам программирования, чтобы решить специфические задачи проекта. Разбираемся, как и когда их нужно использовать.
Читать: «Редкие языки программирования: зачем они нужны и что на них пишут»
@a_cup_of_java
___
Другие наши проекты
Современные разработчики все чаще обращаются к редким языкам программирования, чтобы решить специфические задачи проекта. Разбираемся, как и когда их нужно использовать.
Читать: «Редкие языки программирования: зачем они нужны и что на них пишут»
@a_cup_of_java
___
Другие наши проекты
3 способа проверить, выбран ли чекбокс в jQuery - Пример учебника
Итак, у вас есть чекбокс, и вы хотите проверить, выбран он или нет, во время выполнения программы с помощью jQuery. Если это то, что вам нужно, то продолжайте читать. Флажок - это HTML-элемент с type="checkbox" и свойством checked, которое используется для того, чтобы узнать, выбран флажок или нет. В jQuery есть несколько способов узнать, имеет ли ваш чекбокс это свойство или нет , например, используя :checked, псевдоселектор, или используя функцию is() jQuery, или используя функцию prop(), которая доступна начиная с jQuery 1.6 и далее. В этой статье мы рассмотрим примеры этих подходов к проверке того, установлен ли флажок или нет.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2024/05/3-ways-to-check-if-checkbox-is-selected.html
@a_cup_of_java
___
Другие наши проекты
Итак, у вас есть чекбокс, и вы хотите проверить, выбран он или нет, во время выполнения программы с помощью jQuery. Если это то, что вам нужно, то продолжайте читать. Флажок - это HTML-элемент с type="checkbox" и свойством checked, которое используется для того, чтобы узнать, выбран флажок или нет. В jQuery есть несколько способов узнать, имеет ли ваш чекбокс это свойство или нет , например, используя :checked, псевдоселектор, или используя функцию is() jQuery, или используя функцию prop(), которая доступна начиная с jQuery 1.6 и далее. В этой статье мы рассмотрим примеры этих подходов к проверке того, установлен ли флажок или нет.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2024/05/3-ways-to-check-if-checkbox-is-selected.html
@a_cup_of_java
___
Другие наши проекты
10 лучших курсов Udemy для Java-разработчиков в 2024 году - Лучшее из многого
Здравствуйте, ребята, если вы ищете лучшие курсы Udemy для изучения Java и Spring
Framework, то вы пришли в нужное место. Ранее я уже рассказывал лучшие курсы Pluralsight для Java-разработчиков
и лучшие курсы LinkedIn для Java-разработчиков
а сегодня я поделюсь с вами лучшими курсами Udemy для Java-разработчиков в 2024 году. Прежде чем перейти к
мы перейдем к самой важной части и предоставим вам список лучших курсов, которые вы
которые вы можете использовать, чтобы стать экспертами в области Java-программирования, давайте сначала начнем с основ.
Что такое Java? В самых общих чертах, Java - это язык общего назначения,
объектно-ориентированный и основанный на классах язык программирования, который известен тем, что имеет
меньшим количеством зависимостей от реализации.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2022/03/top-10-udemy-courses-for-java.html
@a_cup_of_java
___
Другие наши проекты
Здравствуйте, ребята, если вы ищете лучшие курсы Udemy для изучения Java и Spring
Framework, то вы пришли в нужное место. Ранее я уже рассказывал лучшие курсы Pluralsight для Java-разработчиков
и лучшие курсы LinkedIn для Java-разработчиков
а сегодня я поделюсь с вами лучшими курсами Udemy для Java-разработчиков в 2024 году. Прежде чем перейти к
мы перейдем к самой важной части и предоставим вам список лучших курсов, которые вы
которые вы можете использовать, чтобы стать экспертами в области Java-программирования, давайте сначала начнем с основ.
Что такое Java? В самых общих чертах, Java - это язык общего назначения,
объектно-ориентированный и основанный на классах язык программирования, который известен тем, что имеет
меньшим количеством зависимостей от реализации.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2022/03/top-10-udemy-courses-for-java.html
@a_cup_of_java
___
Другие наши проекты
Топ-5 курсов для изучения стека MERN в 2024 году - (MongoDB, Express.js, React.js и Node.js) Лучшие из лотов
Популярность разработки стека MERN значительно выросла за последние годы. Стек MERN является одним из двух популярных стеков JavaScript, наряду с Стек MEANи используется для разработки одностраничных динамических веб-приложений. Хотя я большой поклонник стека Java + Spring Boot, если мне приходится выбирать не-Java-стек, то я всегда выбираю MERN-стек из-за React.js. Это один из современных фреймворков, который полностью изменил способ создания фронтенда на JavaScript, и поэтому все больше и больше компаний используют React.js и стек MERN для разработки веб-приложений.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2020/06/top-5-courses-to-learn-mern-stack-for-web-development.html
@a_cup_of_java
___
Другие наши проекты
Популярность разработки стека MERN значительно выросла за последние годы. Стек MERN является одним из двух популярных стеков JavaScript, наряду с Стек MEANи используется для разработки одностраничных динамических веб-приложений. Хотя я большой поклонник стека Java + Spring Boot, если мне приходится выбирать не-Java-стек, то я всегда выбираю MERN-стек из-за React.js. Это один из современных фреймворков, который полностью изменил способ создания фронтенда на JavaScript, и поэтому все больше и больше компаний используют React.js и стек MERN для разработки веб-приложений.
Вопросы и учебные пособия для собеседования по Java
Read: http://www.java67.com/2020/06/top-5-courses-to-learn-mern-stack-for-web-development.html
@a_cup_of_java
___
Другие наши проекты
Java News Roundup: JDK 24 Update, Spring Framework, Piranha Cloud, Gradle 8.9, Arquillian 1.9
This week's Java roundup for July 8th, 2024 features news highlighting: JEP 472, Prepare to Restrict the Use of JNI, proposed to be targeted for JDK 24; milestone and point releases for Spring Framework; the monthly Piranha Cloud release; and the releases of Gradle 8.9 and Arquillian 1.9.
By Michael Redlich
Read: https://www.infoq.com/news/2024/07/java-news-roundup-jul08-2024/
@a_cup_of_java | Другие наши каналы
This week's Java roundup for July 8th, 2024 features news highlighting: JEP 472, Prepare to Restrict the Use of JNI, proposed to be targeted for JDK 24; milestone and point releases for Spring Framework; the monthly Piranha Cloud release; and the releases of Gradle 8.9 and Arquillian 1.9.
By Michael Redlich
Read: https://www.infoq.com/news/2024/07/java-news-roundup-jul08-2024/
@a_cup_of_java | Другие наши каналы
JEP 472: Prepare to Restrict the Use of JNI in JDK 24
JEP 472, now Proposed to Target, aims to issue warnings for using the Java Native Interface (JNI) and adjust the Foreign Function & Memory (FFM) API for consistent warnings. This prepares developers for future releases that restrict JNI and the FFM API to ensure integrity by default.
By A N M Bazlur Rahman
Read: https://www.infoq.com/news/2024/07/jep-472-restrict-jni-jdk-24/
@a_cup_of_java | Другие наши каналы
JEP 472, now Proposed to Target, aims to issue warnings for using the Java Native Interface (JNI) and adjust the Foreign Function & Memory (FFM) API for consistent warnings. This prepares developers for future releases that restrict JNI and the FFM API to ensure integrity by default.
By A N M Bazlur Rahman
Read: https://www.infoq.com/news/2024/07/jep-472-restrict-jni-jdk-24/
@a_cup_of_java | Другие наши каналы
7 основных способов оптимизировать кеширование в Spring Boot
В условиях растущих требований к производительности современных приложений, кеширование становится одним из ключевых инструментов для их удовлетворения.
В новом переводе от команды Spring АйО вы узнаете про 7 основных техник оптимизации кеширования в Spring Boot, которые могут помочь значительно улучшить производительность. От выбора идеальных кандидатов для кеширования до реализации асинхронного кеша и мониторинга метрик кеша.
Читать: https://habr.com/ru/companies/spring_aio/articles/829054/?utm_campaign=829054
@a_cup_of_java | Другие наши каналы
В условиях растущих требований к производительности современных приложений, кеширование становится одним из ключевых инструментов для их удовлетворения.
В новом переводе от команды Spring АйО вы узнаете про 7 основных техник оптимизации кеширования в Spring Boot, которые могут помочь значительно улучшить производительность. От выбора идеальных кандидатов для кеширования до реализации асинхронного кеша и мониторинга метрик кеша.
Читать: https://habr.com/ru/companies/spring_aio/articles/829054/?utm_campaign=829054
@a_cup_of_java | Другие наши каналы
Почему Microsoft отказывается от React в браузере Edge
Недавно команда Microsoft Edge написала статью о том, как они улучшают Edge, чтобы браузер стал быстрее. В материале Microsoft сделала выпад в сторону React и объявила, что больше не будет использовать React для Edge.
В статье мы рассмотрим, как решение Microsoft влияет на React и JavaScript-разработчиков в целом и каковы истинные намерения команды Edge.
Читать: https://habr.com/ru/companies/productstar/articles/829216/?utm_campaign=829216
@a_cup_of_java | Другие наши каналы
Недавно команда Microsoft Edge написала статью о том, как они улучшают Edge, чтобы браузер стал быстрее. В материале Microsoft сделала выпад в сторону React и объявила, что больше не будет использовать React для Edge.
В статье мы рассмотрим, как решение Microsoft влияет на React и JavaScript-разработчиков в целом и каковы истинные намерения команды Edge.
Читать: https://habr.com/ru/companies/productstar/articles/829216/?utm_campaign=829216
@a_cup_of_java | Другие наши каналы
Обзор GigaIDE от СБЕРа | Российская IntelliJ IDEA | Поддержка Spring вместе с Amplicode
Недавно СБЕР выпустил GigaIDE – новую IDE для Java, Kotlin и не только. Это событие вызвало бурные обсуждения среди разработчиков. Чаще всего звучали следующие вопросы:
Чаще всего звучали следующие вопросы:
1. Это просто пересобранная версия IntelliJ IDEA Community Edition?
2. Если нет, что нового предлагает GigaIDE?
3. Поддерживает ли она работу с базами данных и Spring?
Сегодня отвечу на эти и другие вопросы, которые могут возникнуть у тех, кто заинтересовался GigaIDE.
Читать: https://habr.com/ru/companies/haulmont/articles/828828/?utm_campaign=828828
@a_cup_of_java | Другие наши каналы
Недавно СБЕР выпустил GigaIDE – новую IDE для Java, Kotlin и не только. Это событие вызвало бурные обсуждения среди разработчиков. Чаще всего звучали следующие вопросы:
Чаще всего звучали следующие вопросы:
1. Это просто пересобранная версия IntelliJ IDEA Community Edition?
2. Если нет, что нового предлагает GigaIDE?
3. Поддерживает ли она работу с базами данных и Spring?
Сегодня отвечу на эти и другие вопросы, которые могут возникнуть у тех, кто заинтересовался GigaIDE.
Читать: https://habr.com/ru/companies/haulmont/articles/828828/?utm_campaign=828828
@a_cup_of_java | Другие наши каналы
Портируем приложения на Android 1.0: какой мой опыт разработки приложений под первый Android-смартфон в мире в 2024 году
Друзья! А знаете ли вы, какой Android-смартфон был первым в мире и как он выглядел? А я теперь не просто знаю, но и могу физически пощупать настоящую легенду своих лет — HTC Dream, также известный как T-Mobile G1. Однако G1 был мне интересен не только как коллекционный девайс для гика, но и потенциально-диковинное устройство для разработки приложений: ведь в современном мире принято повышать минимальную версию Android для работы тех или иных программ, а я свои буду… понижать, чтобы они смогли заработать даже на самой первой версии Android! В сегодняшней статье мы с вами: посмотрим на Dream и постараемся понять, почему HTC выбрала именно Android, неудачно перепакуем аккумулятор, бэкпортируем мои клиенты ВК, YouTube и Telegram и посмотрим, правда ли старичок «бесполезен», как говорят в ретро-обзорах или что-то ещё да может! Интересно? Тогда добро пожаловать под кат!
Читать: https://habr.com/ru/companies/timeweb/articles/829416/?utm_campaign=829416
@a_cup_of_java | Другие наши каналы
Друзья! А знаете ли вы, какой Android-смартфон был первым в мире и как он выглядел? А я теперь не просто знаю, но и могу физически пощупать настоящую легенду своих лет — HTC Dream, также известный как T-Mobile G1. Однако G1 был мне интересен не только как коллекционный девайс для гика, но и потенциально-диковинное устройство для разработки приложений: ведь в современном мире принято повышать минимальную версию Android для работы тех или иных программ, а я свои буду… понижать, чтобы они смогли заработать даже на самой первой версии Android! В сегодняшней статье мы с вами: посмотрим на Dream и постараемся понять, почему HTC выбрала именно Android, неудачно перепакуем аккумулятор, бэкпортируем мои клиенты ВК, YouTube и Telegram и посмотрим, правда ли старичок «бесполезен», как говорят в ретро-обзорах или что-то ещё да может! Интересно? Тогда добро пожаловать под кат!
Читать: https://habr.com/ru/companies/timeweb/articles/829416/?utm_campaign=829416
@a_cup_of_java | Другие наши каналы
Declarative Gradle: рывок или прорыв?
Полгода назад команда Gradle представила новый продукт — Declarative Gradle. Команда Spring АйО, со своей стороны, провела исследование и готова поделиться результатами.
TL;DR: технология всё ещё активно развивается, но пока что не поддерживается привычными инструментами, такими как IntelliJ IDEA. Несмотря на это, нам удалось запустить Spring Boot приложение!
Читать: https://habr.com/ru/companies/spring_aio/articles/829702/?utm_campaign=829702
@a_cup_of_java | Другие наши каналы
Полгода назад команда Gradle представила новый продукт — Declarative Gradle. Команда Spring АйО, со своей стороны, провела исследование и готова поделиться результатами.
TL;DR: технология всё ещё активно развивается, но пока что не поддерживается привычными инструментами, такими как IntelliJ IDEA. Несмотря на это, нам удалось запустить Spring Boot приложение!
Читать: https://habr.com/ru/companies/spring_aio/articles/829702/?utm_campaign=829702
@a_cup_of_java | Другие наши каналы
Как заработать, используя Telegram бот
Всем привет! Я прошёл сложный путь от создания бота до получения первых платежей, поэтому, как порядочный разработчик, хочу поделить информацией, за которую, я уверен, кто-то кому-то платит большие деньги, а ваши полезные труды пылятся на задворках интернета.
Читать: https://habr.com/ru/articles/829686/?utm_campaign=829686
@a_cup_of_java | Другие наши каналы
Всем привет! Я прошёл сложный путь от создания бота до получения первых платежей, поэтому, как порядочный разработчик, хочу поделить информацией, за которую, я уверен, кто-то кому-то платит большие деньги, а ваши полезные труды пылятся на задворках интернета.
Читать: https://habr.com/ru/articles/829686/?utm_campaign=829686
@a_cup_of_java | Другие наши каналы