Java библиотека (@javalib) — Telegram-канал | Telegram Dialogs
Telegram Dialogs — логотип
Все каналы
Java библиотека

Java библиотека

@javalib

30.7K подписчиков технологии 💬 Комментарии открыты

Книги, статьи, мемы и многое другое для Java программиста! По сотрудничеству и рекламе: @NadikaKir Канал в перечне РКН: https://vk.cc/cJrT4A Мы на бирже: https://telega.in/c/javalib/ Сообщество VK https://vk.com/javatutorial

Последние публикации

Java библиотека
31.08.2026 18:31 · 👁 858
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в мультиподписке Плюс. Попробуйте бесплатно❤️ Слушать #реклама 18+ music.yandex.ru О рекламодателе
Java библиотека
31.08.2026 09:04 · 👁 1.5K
💻Хотите понять, как PostgreSQL 18 ускоряет дисковый I/O до 3× и что это даёт на практике? 1 сентября в 20:00 МСК разберём асинхронный I/O и io_uring: от архитектуры до живого бенчмарка. На уроке покажем, как работал синхронный I/O раньше, объясним новую подсистему AIO с параметром io_method и роль effective_io_concurrency, запустим один и тот же тяжёлый запрос на sync vs io_uring — увидите разницу в реальном времени. Урок полезен DBA, SRE, разработчикам highload-систем и тем, кто планирует миграцию на PG 18 — получите понимание, как настроить io_method под свой профиль нагрузки и замерять эффект на своих данных. ⏰Открытый урок пройдёт в преддверии старта курса «PostgreSQL для администраторов баз данных и разработчиков». Зарегистрируйтесь, чтобы увидеть возможности PG 18 вживую: https://vk.cc/d13NpT Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Java библиотека
31.08.2026 06:33 · 👁 1.5K
Как подключить Keycloak к Spring Boot проекту Keycloak — это современный open-source Identity Provider от Red Hat, который часто используется в enterprise-проектах для SSO (Single Sign-On), OAuth2 и OpenID Connect. Ниже пошаговая настройка интеграции Keycloak с Spring Boot 3 и Spring Security 6. 1️⃣ Зависимости Проверь, что в проекте есть или добавь следующие зависимости: — Spring Web — Spring Security — OAuth2 Resource Server — OAuth2 Client 2️⃣ Разворачиваем Keycloak Запусти Keycloak через Docker: docker run -d \ -p 8080:8080 \ -e KEYCLOAK_ADMIN=admin \ -e KEYCLOAK_ADMIN_PASSWORD=admin \ quay.io/keycloak/keycloak:25.0.2 start-dev После запуска открой http://localhost:8080, войди под admin/admin и создай realm, например demo-realm. 3️⃣ Настройка клиента в Keycloak В разделе Clients → Create client укажи: — Client ID: spring-client — Client Protocol: openid-connect — Root URL: http://localhost:8081 В разделе Settings: — Установи Access Type → confidential — Включи Standard Flow Enabled — Укажи Redirect URI: http://localhost:8081/login/oauth2/code/keycloak Сохрани и перейди на вкладку Credentials, скопируй Client Secret. 4️⃣ Настройка application.yml server: port: 8081 spring: security: oauth2: client: registration: keycloak: client-id: spring-client client-secret: YOUR_CLIENT_SECRET scope: openid, profile, email redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}" provider: keycloak: issuer-uri: http://localhost:8080/realms/demo-realm 5️⃣ Конфигурация безопасности Настрой SecurityConfig.java: @Configuration public class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(auth -> auth .requestMatchers("/", "/public").permitAll() .anyRequest().authenticated() ) .oauth2Login(Customizer.withDefaults()) .logout(logout -> logout .logoutSuccessUrl("/") .invalidateHttpSession(true) ); return http.build(); } } 🧠 Зачем это нужно Keycloak снимает головную боль по хранению паролей, управлению ролями и сессиями. Он интегрируется с LDAP, AD, SAML и десятками внешних OAuth-провайдеров. Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Java библиотека
30.08.2026 13:26 · 👁 1.7K
Регистрируйтесь на Yandex Scale 2026 Главная конференция Yandex Cloud. Узнайте о сервисах, которые меняют ваш бизнес. 4 офлайн-трека (AI, Infra + DevTools, Data, Security), онлайн-трек Deep Tech, воркшопы по ИИ и интерактивы. Подробнее о программе читайте в карточках🗒 📅24 сентября 🚗Москва + 💻онлайн Участие бесплатное! Зарегистрироваться #реклама 16+ scale.yandex.cloud О рекламодателе
Java библиотека
30.08.2026 09:23 · 👁 1.7K
10 техник оптимизации Java, которые выведут вас на новый уровень Когда Java-приложение внезапно начинает «подвисать», причина почти всегда кроется в прозаичных деталях: неоптимизированных циклах, неудачном выборе коллекций, забытом кэше или агрессивном GC. В этой статье — 10 практических техник, которые помогут выжать максимум из JVM без преждевременной микрооптимизации и шаманства. Только доказавшие свою эффективность подходы, которые реально работают в проде — от финтеха до высоконагруженных API. Читать статью Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Java библиотека
28.08.2026 10:39 · 👁 2.2K
🔥 Одна аннотация, которая экономит тонны кода в Spring @RestController - это не просто удобство, а скрытая магия, про которую многие забывают. Под капотом это комбинация @Controller + @ResponseBody . То есть тебе не нужно писать @ResponseBody в каждом методе - всё работает автоматически. • Меньше бойлерплейта • чище код • меньше шансов забыть и получить неожиданный результат Кажется мелочью, но на больших проектах это реально экономит время и нервы Если до сих пор используешь @Controller + @ResponseBody вручную - пора упрощать Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Java библиотека
26.08.2026 05:08 · 👁 2.8K
Вопрос с собеседования Почему в Java интерфейс может иметь методы с реализацией (default)? Это не противоречит идее интерфейса? Ответ: Нет, не противоречит. Они нужны, чтобы можно было добавлять новые методы в интерфейс, не ломая старые классы, которые уже его реализуют. Без default при добавлении нового метода пришлось бы менять весь существующий код. С default-методом интерфейс даёт базовую реализацию метода, которую необязательно переопределять в реализующих классах. Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Java библиотека
25.08.2026 14:39 · 👁 2.8K
Знаете, что в Java switch можно использовать как выражение, а не только как отдельный блок кода? Раньше для выбора значения часто писали так: int timeout; switch (env) { case "dev": timeout = 5; break; case "test": timeout = 10; break; case "prod": timeout = 30; break; default: throw new IllegalArgumentException(env); } Работает, но кода много, и легко забыть break. В современном Java можно записать это короче: int timeout = switch (env) { case "dev" -> 5; case "test" -> 10; case "prod" -> 30; default -> throw new IllegalArgumentException(env); }; Такой switch сразу возвращает значение, поэтому его удобно использовать для конфигов, статусов, ролей, типов платежей, уровней логирования и любых фиксированных сценариев. Если логика в ветке сложнее, можно использовать yield: int price = switch (type) { case "vip" -> { int discount = 20; yield basePrice - discount; } default -> basePrice; }; Код получается компактнее, а Java помогает следить, чтобы результат действительно был получен. Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Java библиотека
25.08.2026 09:20 · 👁 2.2K
➡️ Автотесты интерфейса и API часто живут в разных наборах инструментов, усложняя настройку и сопровождение. Playwright позволяет объединить эти проверки и сократить количество лишних зависимостей в проекте. 📆 3 сентября в 20:00 МСК на открытом уроке «UI и API тестирование с Java и Playwright» разберём: ➖ устройство Playwright, ➖сравним его с Selenium ➖ напишем первые автотесты на Java. Вы научитесь: 🟥запускать проверки пользовательского интерфейса и API, 🟥структурировать код, 🟥подключать тесты к конвейеру непрерывной интеграции и доставки. Также вы получите критерии, которые помогут оценить целесообразность перехода на Playwright в рабочем проекте. Занятие проходит в преддверии старта курса «Автоматизатор тестирования на Java. Продвинутый уровень». ✔️ Зарегистрируйтесь, чтобы освоить Playwright на практике и расширить набор инструментов автоматизации: https://vk.cc/d0OA0X Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Java библиотека
24.08.2026 20:20 · 👁 2.1K
В Java лямбда-выражение создаёт экземпляр функционального интерфейса. Во время выполнения этот экземпляр создаётся с помощью класса LambdaMetaFactory Следующий код на Java создаёт объект Function<String, String> Function<String, String> f = s -> s.toUpperCase(); Во время выполнения объект создаётся с помощью кода, аналогичного следующему: @SuppressWarnings("unchecked") void main() throws Throwable { MethodHandles.Lookup lookup; lookup = MethodHandles.lookup(); CallSite callSite; callSite = LambdaMetafactory.metafactory( lookup, "apply", MethodType.methodType(Function.class), MethodType.methodType(Object.class, Object.class), lookup.findStatic( getClass(), "lambda", MethodType.methodType(String.class, String.class) ), MethodType.methodType(String.class, String.class) ); MethodHandle target; target = callSite.getTarget(); Function<String, String> f; f = (Function<String, String>) target.invokeExact(); String msg; msg = f.apply("Hello, World!"); IO.println(msg); } private static String lambda(String s) { return s.toUpperCase(); } При выполнении этот код выведет в консоль HELLO, WORLD! Полезные ресурсы по Java 👩‍💻| Наш канал в MAX 🟪
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.