Команда Spring АйО перевела и адаптировала доклад "Garbage Collection in Java: The progress since JDK 8" Стефана Йоханссона(Stefan Johansson) с последнего Devoxx Belgium.
Доклад получилось поделить на две статьи:
* В первой мы рассказали про основы работы сборки мусора в Java и различных сборщиках мусора
* Вторая часть посвящена сравнению производительности сборщиков и их прогрессу с момента выхода JDK 8
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/858166/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥7❤6
Вчера стала доступна новая минорная версия Spring Framework. Новое поколение Spring будет интегрировано в приложения на Spring Boot уже на следующей неделе с выходом Spring Boot 3.4.0.
Ключевые измнения, которые стоит отметить:
🔸 Добавлена возможность фоново инициализировать бины благодаря новому свойству bootstrap
@Bean(bootstrap = BACKGROUND)
🔹 Реализована возможность создавать fallback бины для случаев, когда ни один бин объявленого типа не был предоставлен
🔸 Добавлена поддержка AssertJ для MockMvc
#release #spring_framework
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍17❤7👌1
Рады представить нового партнёра Spring АйО – компанию Axiom JDK! Многие знают Axiom JDK как поставщика платформы Java. Компания производит и поддерживает безопасный стек базовых технологий для разработки и исполнения Java приложений.
–––
На YouTube канале Axiom JDK вышел подкаст "Go vs Java: Кто победит на рынке разработки?" с участием двух экспертов сообщества Spring АйО: Рустамом Курамшиным и Михаилом Поливахой. Вместе с Олегом Козыревым (Senior Go Developer) ребята пытались выяснить:
– Как выбрать стек для нового проекта?
– В чём преимущества и недостатки Java и Go в enterprise-разработке?
– Как нанимают разработчиков и что ждёт новичков?
– В чём отличия подходов на Java и Go?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29🔥15❤6😁4👎3
В новой версии IntelliJ IDEA:
▪️Добавлена возможность смотреть логическую структура кода, отображающую связи между компонентами проекта
▫️Улучшена функция HotSwap, позволяющая обновлять измененные классы без перезапуска приложений
▪️Реализована возможность генерировать Spring Data JPA методы в месте обращения к бину репозитория. Аналогичную функциональность мы уже видели в Amplicode
▫️Появилась возможность смотреть информацию о времени выполнения строк кода
▪️Упрощена отладка Kubernetes-приложений с помощью функции "Add Tunnel for Remote Debug"
Полный список изменений и улучшений доступен на сайте IntelliJ IDEA: https://www.jetbrains.com/ru-ru/idea/whatsnew/
P.S. В раздел "Главное" не попала ни одна из фич AI-ассистента. AI – всё!?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍39🔥11👎7❤6
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Поддержка RestClient для OAuth2 в Spring Security 6.4
– Сборка мусора в Java. Часть №2. Прогресс со времени выхода JDK 8
– Spring Framework 6.2.0 уже доступен
– Вышла IntelliJ IDEA 2024.3
– Amplicode выпустил новый релиз 2024.2.6-EAP
– Axiom выпустил подкаст "Java или Go, чай с чабрецом или банановый раф?"
– Joker опубликовал отчётный ролик о прошедшей конференции
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡17👍14🔥9
Недавно вышел Spring Framework 6.2, который включил в себя множество улучшений и новых возможностей. К одним из них можно отнести переопределение бинов в тестах.
В новом переводе от команды Spring АйО вы узнаете как можно использовать
@TestBean
, @MockitoBean
и @MockitoSpyBean
для переопределения бинов в тестах.📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/859430/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍9❤3
На конференции IT Community Day выступили два наших эксперта из сообщества Spring АйО с докладами.
🎤 Михаил Поливаха представил доклад "Spring-AI с Gigachat. Интегрируем LLM в ваше приложение безболезненно", в котором рассказал о том, как внедрить мощные языковые модели в проекты на Spring и получить максимум пользы с минимальными трудностями.
🎤 Павел Кислов выступил с докладом "Spring Security ACL. Концепции гранулированного доступа в технологиях Java и почем фунт лиха", где раскрыл сложные, но важные аспекты настройки тонкого доступа в Spring Security ACL.
Мы подготовили видео-записи этих выступлений, чтобы вы могли детально познакомиться с темами:
- Выступление Михаила Поливахи
- Выступление Павла Кислова
- Выступление Михаила Поливахи
- Выступление Павла Кислова
- Выступление Михаила Поливахи
- Выступление Павла Кислова
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥10❤3
🔄 Версионирование эндпоинтов — это просто
Команда Spring АйО перевела и адаптировала доклад "Endpoint versioning made simple" Бауке Найхаус (Bouke Nijhuis) с последнего Devoxx Belgium.
В докладе автор объясняет, зачем нужно версионировать API, и подробно сравнивает различные подходы к реализации этой задачи.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/859910/
Команда Spring АйО перевела и адаптировала доклад "Endpoint versioning made simple" Бауке Найхаус (Bouke Nijhuis) с последнего Devoxx Belgium.
В докладе автор объясняет, зачем нужно версионировать API, и подробно сравнивает различные подходы к реализации этой задачи.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/859910/
👍27🔥11❤4
Отвечает эксперт сообщества Spring АйО – Михаил Поливаха.
–––
Вопрос действительно интересный, и хотя такая возможность могла бы быть полезной, здесь есть свои нюансы и подводные камни. Давайте разберёмся, какие именно.
Начнём с того, что native query — это запросы, написанные на чистом SQL. В Hibernate их часто используют, когда возможностей HQL/JPQL недостаточно или когда нужны специфичные фичи для конкретной СУБД. Однако ни один ORM-фреймворк (будь то Spring Data JDBC, Hibernate или любой другой) не может на 100% знать структуру вашего нативного запроса — он может лишь предполагать. В таком запросе может быть что угодно, и ORM-фреймворк не всегда сможет корректно с ним работать.
Теперь представьте ситуацию: у нас есть Spring Data JPA native query для PostgreSQL и следующий набор тестов:
@Query(
value = "SELECT * FROM users FOR UPDATE SKIP LOCKED;",
nativeQuery = true
)
List<User> findBySomething(String name, Pageable pageable);
@Test
void testWithoutSort() {
userRepository.findBySomething("another", PageRequest.of(1, 10));
}
@Test
void testWithSort() {
userRepository.findBySomething("another", PageRequest.of(1, 10, Sort.by("name")));
}
Первый тест пройдёт успешно, а второй — нет. Почему?
В итоге вставлять сортировку в native запрос приходится Spring Data JPA, и ей в буквальном смысле надо угадывать, куда же в запросе поставить
ORDER BY
. Да, Spring Data JPA может модифицировать ваши native query (существует даже API, позволяющий делать это динамически). Как вы можете догадаться, в данном случае Spring Data JPA не угадает с позиционированием.Вот пример SQL, который будет сгенерирован в упавшем тесте
SELECT
*
FROM
users
OFFSET
? ROWS
FETCH NEXT ? ROWS ONLY FOR UPDATE SKIP LOCKED;
ORDER BY
FOR.name ASC -- НЕПРАВИЛЬНО! ORDER BY ЗДЕСЬ БЫТЬ НЕ ДОЛЖНО!
Проблема заключается в том, что Spring Data JPA вставляет
ORDER BY
в неподходящее место, что и приводит к ошибке. С нативными запросами ORM-фреймворки, такие как Spring Data JPA и Hibernate, вынуждены догадываться, куда вставить
OFFSET
, LIMIT
и ORDER BY
. Чаще всего они угадывают верно, так как эти конструкции обычно находятся в конце запроса, но бывают исключения.Таким образом, поддержка пагинации для нативных запросов — действительно полезная функция, но нужно понимать, что её реализация может привести к множеству багов, связанных с неверным определением позиции для
OFFSET
, LIMIT
и ORDER BY
.Тем не менее, мне кажется, что эта фича стоит того, чтобы её внедрить! Делитесь своим мнением в комментариях, буду рад обсудить!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32❤10🔥7
Совсем недавно вышла IntelliJ IDEA 2024.3 – последний мажорный релиз IDE в этом году. И одним из самых важных нововведений этой версии стала улучшенная панель Structure.
Команда Spring АйО перевела статью Siva Katamreddy (Developer Advocate в JetBrains), в которой Siva рассказывает, как улучшенная панель помогает решать задачи, и делится историей создания этой функциональности.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/860510/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍10❤5⚡2
Уже через неделю 3 эксперта сообщества Spring АйО примут участие в Java Rock Stars Meetup!
Михаил Поливаха выступит с докладом "Spring Data JPA. Все сложнее, чем кажется"
В повседневной разработке enterprise-приложений при работе с базой данных доминирует JPA. В частности, как правило, люди используют Spring Data JPA. Хоть и этот фреймворк используется довольно активно, многие не понимают как именно Spring Data JPA работает с Hibernate: как Spring Data JPA менеджит сессии, как в одном приложении уживаются транзакции JPA-спецификации и транзакции самого Spring?
Павел Кислов выступит с докладом "Spring Security, как дела?"
Для многих spring security застыл в состоянии, в котором он был до момента выхода spring boot 3 и до spring security 6.0. Даже с этого момента произошло немало событий в жизни security-части фреймворка: вышел новый authorization server, в oauth2 добавили поддержку rest client, поменялось архитектурное видение разработчиков фреймворка и еще много всего. Это ли не повод синхронизировать головы и актуализировать понимание? Этим и займемся.
А Рустам Курамшин станет ведущим этого мероприятия.
Участие абсолютно бесплатное, главное успеть зарегистрироваться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥30👍12❤5
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Spring Framework 6.2.0: переопределение бинов в тестах
– Spring АйО на IT Community Day
– Версионирование эндпоинтов — это просто
– #ВопросЭксперту: почему в Spring Data JDBC отсутствует пагинация для native query?
– От кода к смыслу: улучшенная панель Structure в IntelliJ IDEA 2024.3
– Java Rock Stars Meetup
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡10🔥7👍6❤1
Недавно состоялся релиз Spring Framework 6.2, вслед за ним последовал релиз Spring Boot 3.4.
Команда Spring АйО подготовила перевод статьи Josh Long об основных изменениях и улучшениях, которые вошли в последний релиз.
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/861182/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥7⚡6
Forwarded from Amplicode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥6😁4❤3⚡1👎1🤔1
🌟Что нового в Spring Framework 6.2, Spring Boot 3.4 и каковы планы на будущее?
Команда Spring АйО перевела статью InfoQ, посвящённую новым версиям Spring Framework и Spring Boot.
В статье обсуждаются улучшения последних релизов, анонс следующего поколения Spring, запланированного на 2025 год, а также ответы на вопросы редакции InfoQ от руководителя проекта Spring Framework Юргена Хёллера и контрибьютера Spring Framework core Себастьяна Делюза.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/861782/
Команда Spring АйО перевела статью InfoQ, посвящённую новым версиям Spring Framework и Spring Boot.
В статье обсуждаются улучшения последних релизов, анонс следующего поколения Spring, запланированного на 2025 год, а также ответы на вопросы редакции InfoQ от руководителя проекта Spring Framework Юргена Хёллера и контрибьютера Spring Framework core Себастьяна Делюза.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/861782/
🔥18👍9❤6⚡2
Команда Spring АйО перевела статью об улучшениях Spring Security 6.4.1 в новом релизе.
В новой версии поддержаны современные методы аутентификации, такие как Passkeys и одноразовые OTTs токены. Josh Long называет этот релиз doozie - что-то сильно потрясающее. Действительно ли это так?
📚 Читать на Хабр: https://habr.com/ru/companies/spring_aio/articles/862400/
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥11❤6
Какую СУБД используете в продакшене?
Anonymous Poll
87%
PostgreSQL (или какой-то форк)
6%
MySQL (MariaDB)
4%
Microsoft SQL Server
13%
Oracle Database
11%
MongoDB
3%
Apache Cassandra
9%
ClickHouse
3%
Другую, напишу в комментариях
👍12🔥7🤔4
Для тех, кто был слишком занят на неделе или просто пропустил некоторые посты, публикуем дайджест!
– Что нового в Spring Boot 3.4
– Что нового в Spring Framework 6.2, Spring Boot 3.4 и каковы планы на будущее?
– Что нового в Spring Boot 3.4: Spring Security
– Опрос "Какую СУБД используете в продакшене?"
– Создаём CRUD REST API в Spring Boot быстро и просто вместе с Amplicode
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3❤1
🌐 Как жить без IntelliJ IDEA? Часть 3 — HTTP Client
В предыдущей статье "Как жить без IntelliJ IDEA" мы разбирали, какие есть альтернативы Ultimate в части поддержки Spring.
В этой части команда Spring АйО исследует, чем можно заменить встроенный HTTP-клиент JetBrains, за что его так любят разработчики и какие инструменты могут стать достойной альтернативой.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/863106/
В предыдущей статье "Как жить без IntelliJ IDEA" мы разбирали, какие есть альтернативы Ultimate в части поддержки Spring.
В этой части команда Spring АйО исследует, чем можно заменить встроенный HTTP-клиент JetBrains, за что его так любят разработчики и какие инструменты могут стать достойной альтернативой.
📚 Читать на Хабре: https://habr.com/ru/companies/spring_aio/articles/863106/
🔥21👍12❤6🤔2
Forwarded from Amplicode
А для тех, кто больше любит смотреть, а не читать – подготовили обзор последних новинок из мира инструментов для разработчиков в видео-формате.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23😁10❤6👍6👎3