Java библиотека
31.6K subscribers
2.34K photos
87 videos
9 files
2.15K links
Книги, статьи, мемы и многое другое для Java программиста!

По сотрудничеству и рекламе: @NadikaKir

Канал в перечне РКН: https://vk.cc/cJrT4A

Мы на бирже: https://telega.in/c/javalib/

Сообщество VK https://vk.com/javatutorial
Download Telegram
☃️ Зима близко...
Как и Java-митап от Мир Plat.Form!

Мир Plat.Form — технологическая команда Национальной системы платежных карт (НСПК). Наши самые известные разработки — платёжная система «Мир» и Система быстрых платежей (СБП).

Собираемся в тёплой компании, где обсудим:

❄️ Как реализовать справочники в реальном времени на PostgreSQL и Kafka
❄️ Чем Virtual Threads отличается от реактивного подхода
❄️ И узнаем, почему Unicode-текста могут ввести в ступор даже самого опытного разработчика

Познакомьтесь со спикерами и их докладами в карусели и регистрируйтесь на митап по ссылке

Увидимся!

27 ноября, 18:00-22:00
Москва, 3-й Красносельский переулок, 19, стр. 13
(Зал «Grey Green»)


Реклама. АО "НСПК", ИНН 7706812159, erid 2Vtzqx5DouT
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥3
👩‍💻 Как быстро настроить Zero-Downtime деплой Spring Boot-приложения с помощью Docker + Traefik

Обновлять сервис без остановки — не роскошь, а необходимость. Ни пользователи, ни ваши коллеги не должны видеть "502 Bad Gateway", пока вы выкатываете новую версию.

Пошагово разберём, как сделать быстрый и бесшовный деплой с балансировкой между версиями.

1️⃣ Готовим Dockerfile
FROM eclipse-temurin:21-jdk
WORKDIR /app
COPY target/myapp.jar app.jar
ENTRYPOINT ["java","-jar","/app/app.jar"]


Собираем образ:
docker build -t myapp:1.0.0 .


2️⃣ Добавляем Traefik как reverse proxy

Создаём docker-compose.yml:

version: '3.8'
services:
traefik:
image: traefik:v3.1
command:
- "--providers.docker=true"
- "--entrypoints.web.address=:80"
ports:
- "80:80"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"

myapp_v1:
image: myapp:1.0.0
labels:
- "traefik.enable=true"
- "traefik.http.routers.myapp.rule=Host(`myapp.local`)"
- "traefik.http.services.myapp.loadbalancer.server.port=8080"


Запускаем:
docker compose up -d


Traefik автоматически поднимет роутер и начнёт проксировать трафик.

3️⃣ Выкатываем новую версию без даунтайма

Создаём новый образ:
docker build -t myapp:1.1.0 .


Добавляем в docker-compose.yml рядом:
  myapp_v2:
image: myapp:1.1.0
labels:
- "traefik.enable=true"
- "traefik.http.routers.myapp.rule=Host(`myapp.local`)"
- "traefik.http.services.myapp.loadbalancer.server.port=8080"


Теперь Traefik балансирует между двумя версиями — 1.0.0 и 1.1.0.
Можно спокойно проверить, что новая версия работает корректно.

4️⃣ Плавно отключаем старую

Если всё ок — выключаем старый контейнер:
docker compose stop myapp_v1
docker compose rm -f myapp_v1


Traefik мгновенно перестроит маршрут — без обрывов соединений.
Ни один пользователь не заметит переключения.

5️⃣ Добавляем health-checks для надёжности

В application.yml:

management:
endpoints:
web:
exposure:
include: health


И в Docker-compose:

healthcheck:
test: ["CMD", "curl", "-f", "https://localhost:8080/actuator/health"]
interval: 10s
timeout: 3s
retries: 3


Traefik будет держать в балансе только живые инстансы.
Всё просто и надёжно.

💡 Что мы получили:

— Обновления без простоев
— Автоматическую балансировку
— Self-healing через health-checks
— Легко масштабируемую инфраструктуру для staging/prod

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥119👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Исәнмесез! Встречайте новый VK JT Meetup: ML + Java!

4 декабря VK приглашает ML-инженеров и Java-разработчиков Казани на офлайн-встречу.

В программе:
— Практические доклады от экспертов VK: управление облаком One-cloud, запуск генеративного поиска в мессенджере и выкатка RAG в прод
— Два потока на выбор: нетворкинг с настольными играми или решение реальных кейсов от VK с призами

Общайтесь с экспертами, находите лучшие решения и оставайтесь на афтепати: фуршет, нетворкинг, настолки и свободное общение.

Только офлайн, в Big Twin Arena.
🎟 Участие бесплатное, регистрация на сайте.
👍43🔥3🎅1
Метод PutAll()

Метод putAll() используется для копирования всех элементов одной хэш-таблицы или Map в другую. Он принимает в качестве аргумента другую Map или хэш-таблицу, и копирует все её пары ключ-значение в исходную коллекцию.
Метод putAll() не возвращает значения и не бросает исключений.

Этот метод удобен, когда нужно быстро скопировать данные из одной коллекции в другую. Он работает быстрее, чем добавлять элементы в цикле.
Если в конечной коллекции уже есть ключи, которые содержатся в исходной Map, то значения этих ключей будут перезаписаны.

Также с помощью этого метода можно объединять данные из нескольких Map в одну целевую коллекцию.


Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥2
👩‍💻 Советы по Spring Boot 💡

Библиотека Spring Boot Startup Report генерирует интерактивные отчеты о работе приложений Spring Boot,и помогает понять, что влияет на время загрузки и запуска приложения, что может помочь в оптимизации

🖥 Github

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍7🔥3
OAuth 2.0 авторизация в Java Spring Boot приложении: Пошаговое руководство

В этом видео мы подробно рассмотрим процесс реализации OAuth 2.0 авторизации в Java Spring Boot приложении. 🚀

Вы узнаете, как настроить аутентификацию и обеспечить безопасность вашего приложении.🔐

Это руководство будет полезно как для начинающих разработчиков, так и для тех, кто уже знаком с Java Spring Boot и хочет углубить свои знания в области безопасности и авторизации. 💻


📺🗣СМОТРЕТЬ RUTUBE

🌐🗣СМОТРЕТЬ VKVIDEO

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🔥4
Неожиданное введение в Spring MVC

Spring MVC кажется сложным — пока не поймёшь, как он вырос из обычных сервлетов. На вебинаре шаг за шагом соберём свой первый фреймворк и разберёмся, зачем нужен MVC.

Приглашаем на открытый урок.
📅 Встречаемся 24 ноября в 20:00 мск.

Расскажет Александр Оруджев — Senior Software Engineer. Встречаемся на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом разберете:
• как сервлеты превратились в контроллеры;
• что делает Spring под капотом;
• как построить собственный мини-MVC и понять принципы работы фреймворка.

После вебинара вы:
— поймёте архитектуру MVC без заучивания;
— перестанете бояться Spring MVC и начнёте использовать его осознанно;
— сделаете первый шаг к системному пониманию backend-разработки.

24 ноября в 20:00 открытый урок проходит в преддверие старта курса «Разработчик на Spring Framework». Все участники получат скидку на обучение.

👉 Регистрация бесплатная, но количество мест ограничено — успей занять своё место: https://vk.cc/cRyMsT

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
4🔥3👍2
💡 Совет по Java

С паттерн-матчингом для instanceof в Java можно объявлять переменную прямо внутри проверки. Это избавляет от лишнего каста и делает код чище.

Пример:


if (obj instanceof String s) {
System.out.println("Длина строки: " + s.length());
}


Подписывайся на наш канал в Max
🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍11🔥5
⌨️ 🤖 Хочешь прокачаться в backend-разработке? Но справишься ли ты с тестом по Kotlin?

🏆 Пройди тест из 10 вопросов, проверь свой уровень знаний и приходи учиться на онлайн-курс «Kotlin Backend Developer. Professional» от OTUS!

На курсе:

✔️ Разработаете monolith, микросервисы и serverless с помощью Kotlin и фреймворков Spring, Ktor и бессерверных библиотек.
✔️ Освоите корутины для асинхронных и многопоточных задач, а также WebSocket, RabbitMQ, Kafka для транспорта.
✔️ Научитесь строить хранилища на Postgres, Cassandra, ArcadeDb и интегрировать OpenAPI с любым фронтендом.

🎫
Курс можно приобрести в рассрочку

➡️ Пройди тест и присоединяйся к группе: https://vk.cc/cREFg3

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2🔥2❤‍🔥1
Forwarded from Java Guru 🤓
Что будет результатом кода?
This media is not supported in your browser
VIEW IN TELEGRAM
3
«Мы поняли, что мы как Тринити и Морфеус. Нам нужен был Нео». Как ночной портье за 3 месяца разобрался в инжиниринге данных

Смотрите подкаст «Криптонит говорит» о дата-инженерах! В нём эксперты оюсуждают:
🔹достигла ли пика профессия дата-инженера;
🔹какой стек нужно знать дата-инженерам;
🔹какие намечаются тренды отрасли.

📺 YouTube
📺
Rutube
💙
VK видео
💬
Подкаст в телеграме
🎵 Яндекс.Музыка

Смотрите и подписывайтесь на подкаст «Криптонит говорит» — обсуждаем айти, искусственный интеллект, языки программирования и криптографию.

Реклама АО НПК «Криптонит» ИНН 9701115253 Erid: 2Vtzquk6ZBX
3👍2🔥2
Клон Redis на Java с нуля | Полный проект

Добро пожаловать в полный гайд по созданию Redis с нуля на Java!
В этом видео ты узнаешь, как работают базовые команды Redis, реализуешь репликацию, персистентность, стримы и транзакции — всё своими руками, без фреймворков и тяжёлых библиотек.
Погружаемся в систему, которую используют миллионы — на чистом Java-коде!


🌐🗣СМОТРЕТЬ VKVIDEO

Подписывайся на наш канал в Max 🟪
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍31