Spring АйО
8.44K subscribers
304 photos
215 videos
403 links
Русскоязычное сообщество Spring-разработчиков.

Habr: bit.ly/433IK46
YouTube: bit.ly/4h3Ci0x
VK: bit.ly/4hF0OG8
Rutube: bit.ly/4b4UeX6
Яндекс Музыка: bit.ly/3EIizWy

Канал для общения: @spring_aio_chat
Download Telegram
Channel created
Знаете ли вы, что большинство Java разработчиков активно используют Spring Boot в своей работе? Можно ли утверждать, что Java разработчик == Spring Boot разработчик? Вероятно, да!

Всем привет! Это канал русскоязычного сообщества Spring Boot - Spring АйО.

Здесь вы найдете новости и контент про Spring, Java и всему, с чем так или иначе соприкасается Spring Boot разработчик. Материалы будут не всегда на русском, но всегда полезные и актуальные.

Добро пожаловать и присоединяйтесь:
😌@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍74
21 вопрос на собеседование по Maven.

Вопрос №1: А почему не Gradle? 🤔

А если серьезно, каждая из билд систем имеет свои преимущества. Тем не менее, start.spring.io по умолчанию выбирает Gradle, и что интересно, на Groovy.

🔗 https://www.java67.com/2024/04/top-21-maven-interview-questions.html

Подписывайтесь:
😌@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍5🔥3
Spring AI

Во всём мире сейчас наблюдается ажиотаж вокруг темы искусственного интеллекта и разработки приложений с его использованием. Многие стремятся внедрить искусственный интеллект в свои продукты и воспользоваться всеми его преимуществами. Поэтому сообщество Spring создало модуль 'Spring AI' для упрощения интеграции AI API в приложения Spring. Spring AI — это молодой проект, призванный упростить для разработчиков интеграцию функций искусственного интеллекта в приложения Spring. И он достигает этой цели, предлагая набор абстракций и инструментов, которые упрощают взаимодействие с такими ИИ-моделями, как OpenAI и Azure OpenAI.


🔗 https://habr.com/ru/companies/otus/articles/814713/

Подписывайтесь:
😌@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍4🔥3
IntelliJ IDEA

IntelliJ IDEA 2024.1 приносит множество новых функций, среди которых особенно выделяются навигация к логгеру и inline breakpoints. Теперь вы можете быстро переходить к соответствующему логгеру из лог-сообщения, что значительно упрощает отладку и анализ логов. Inline breakpoints позволяют устанавливать точки останова прямо в редакторе, что делает процесс отладки более интуитивным и удобным. Эти обновления делают IntelliJ IDEA еще более мощным инструментом для разработчиков. Также доступно в Community Edition.

#IntelliJ #IDE

🔗 https://blog.jetbrains.com/idea/2024/02/intellij-idea-2024-1-eap-6

Подписывайтесь:
😌@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3❤‍🔥2👏1
Вышел Spring Boot 3.3.0. В обновлении представлены следующие нововведения:

🚀 Поддержка CDS для ускорения времени запуска.
🔍 Улучшение Observability.
🔐 Новые возможности Spring Security.
🧵 Поддержка виртуальных потоков для вебсокетов.
Обновление зависимостей и многое другое.

#Spring #SpringBoot

🔗 https://spring.io/blog/2024/05/23/spring-boot-3-3-0-available-now

Подписывайтесь:
😌@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4👏3
А тем временем, вышел Kotlin 2.0!

Основные изменения включают стабилизацию нового компилятора Kotlin K2, улучшение работы с многоплатформенными проектами, поддержку новых плагинов и улучшения производительности компилятора. В новой версии также прокачали smart-cast, а также ускорили работу IDE.

Несколько странно выглядит smart-cast для операций decrement и increment, меняющих тип объекта 🤯


interface Rho {
operator fun inc(): Sigma = TODO()
}

var unknownObject: Rho = TODO()

++unknownObject // после этого unknownObject: Sigma 🤪 но Kotlin знает об этом)


#Kotlin

🔗 https://kotlinlang.org/docs/whatsnew20.html

Подписывайтесь:
😌@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍65👏2
This media is not supported in your browser
VIEW IN TELEGRAM
Когда меня просят стартануть проект не на Spring Boot 😂
😁13🔥3🤣31👍1
Иногда полезно освежить в памяти базовые принципы фреймворка. В Spring Framework центральное место занимает Bean. В своем видео Джош Лонг рассказывает об истории Bean и его жизненном цикле.

#SpringTips #SpringBoot

📱 https://www.youtube.com/watch?v=Z5hxolai4Tk

Подписывайтесь:
😌@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3👏2
Hibernate — очень мощный и функциональный ORM (Object-Relational Mapping) фреймворк. Он связывает базы данных с помощью объектно-ориентированных языков программирования. Однако многие, начиная с ним работать, натыкаются на проблемы производительности или отсутствия нужной функциональности. Многие из этих проблем появляются просто из-за того, что разработчики не умеют его «готовить».

🔗 https://habr.com/ru/companies/magnit/articles/814573/

Подписывайтесь:
😌@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥4👌2
Когда ИИ захватит мир, он будет заставлять разработчиков писать код, чтобы давать ему все больше данных для обучения. Хотя... постойте 🤔
😁63👍1🔥1
Классная новость для всех Spring Boot разработчиков! Spring Academy дает бесплатный доступ ко всем своим обучающим материалам. 9 курсов и 12 гайдов по Spring Boot.

P.S. Есть сложности в регистрации из РФ.

🔗 https://spring.academy/

Подписывайтесь:
😌@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👏3🤩2👍1
🐳 Идеальный Dockerfile для Spring Boot приложения

Контейнеризовать Spring Boot приложение можно так:

FROM gradle:8.5.0-jdk21
WORKDIR /
COPY / .
RUN ./gradlew installDist
CMD ./build/install/app/bin/app


И так:

FROM bellsoft/liberica-openjdk-alpine:21 AS builder
WORKDIR /application
COPY . .
RUN --mount=type=cache,target=/root/.gradle chmod +x gradlew && ./gradlew clean build -x test

FROM bellsoft/liberica-openjre-alpine:21 AS layers
WORKDIR /application
COPY --from=builder /application/build/libs/*.jar app.jar
RUN java -Djarmode=layertools -jar app.jar extract

FROM bellsoft/liberica-openjre-alpine:21
VOLUME /tmp
RUN adduser -S spring-user
USER spring-user
COPY --from=layers /application/dependencies/ ./
COPY --from=layers /application/spring-boot-loader/ ./
COPY --from=layers /application/snapshot-dependencies/ ./
COPY --from=layers /application/application/ ./

ENTRYPOINT ["java", "org.springframework.boot.loader.launch.JarLauncher"]


Второй вариант с одной стороны намного сложнее реализовать, но с другой стороны он даёт множество преимуществ, среди которых можно отметить:

меньший размер финального образа (из-за исключения инструментов сборки и использования JRE вместо JDK);
🛡️ более безопасный подход к работе с файловой системой (за счёт создания и использования пользователя с ограниченными правами);
🚀 ускоренный процесс сборки (благодаря кэшированию зависимостей).

🔗 Подробнее о том, как написать идеальный Dockerfile тут: https://spring.io/guides/topicals/spring-boot-docker

Подписывайтесь:
😌@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍144🔥4
Spring Стартер Недели

Как сделать CRUD за 5 минут? Создаем модель данных, репозиторий, контроллер с 5-8 методами и, возможно, несколько dto. Если печатать со скоростью 600 символов в минуту, то можно успеть 🙈

Или берем Spring Data Rest, и получаем круды для своих репозиториев из коробки. И не только круды. Можно выставить наружу любой метод доступа к данным, прикрутить пагинацию и сортировку.

Однако, быстрый старт в начале может обернуться болью в процессе кастомизации или добавлении сложной (и не очень) логики. Тем не менее, выглядит как вполне себе хорошее решение для небольших REST сервисов, почти что Low Code 🙃.

Больше информации о данном стартере можно получить из доклада Рустама Курамшина на JPoint 2023.

📱 https://www.youtube.com/watch?v=roaGUHaWPxw

🔗 https://spring.io/projects/spring-data-rest

#SpringStarter #SpringBoot

Подписывайтесь:
😌@spring_aio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍113🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Не то чтобы, нас сильно интересовал Python, но анимация очень интересная.

Жизненный цикл кода от IDE до рабочей программы.
👍8🔥4👌3