Все потоки
Поиск
Написать публикацию
Обновить
184.24

Java *

Объектно-ориентированный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Мой опыт создания регистрации: @AuthenticationalPrinciple, JWT, UserDetails

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров5.9K

Казалось бы, что может быть проще создания регистрации и логика: взял пароль, взял username, сохранил в базу, когда пользователь заходит, просто сравниваешь значения с теми, что лежат в базе.

А потом кто-то взламывает доступ к твоей базе и продает строчку за рубль. А если у тебя еще и приложение, где у пользователя есть информация о банковском счете, а у тебя пароли лежат незашифрованные в базе.

Сегодня я покажу как решить эту проблему.

Читать далее

Шатаем ActiveMQ

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров2K

Пожалуйста обновите ActiveMQ после прочтения этой статьи. Рассказ об одной известной атаке на инфраструктуру крупных ИТ-проектов — брокер сообщений Apache ActiveMQ.

Читать далее

Тренды Java, часть 2: свой стек или глобальные фреймворки?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.4K

Продолжаем делиться результатами исследования трендов Java в России. Первую часть о выборе версий Java, систем сборки и IDE, а также использовании ИИ в разработке читайте здесь. Во второй части мы расскажем о том, какие дистрибутивы JDK, фреймворки, языки JVM и профайлеры выбирают Java-разработчики в России.

В исследовании, завершившемся в третьем квартале 2024 года, приняли участие более 500 специалистов из разных отраслей — от финансов и IT до нефтегаза и e-commerce. Более половины респондентов работают в крупных компаниях со штатом более 1000 человек.

Внимание! В 2025 году технологический ландшафт Java в России будет исследовать TechRadar. Присоединяйтесь к анонимному опросу, если хотите повлиять на формирование независимого среза российского рынка Java. Чтобы оставаться востребованным, важно понимать, какие технологии в тренде, а какие уходят.
Спойлер: в конце статьи есть подробности. 

И так, поехали!

Читать далее

Функциональное программирование в Java

Время на прочтение25 мин
Количество просмотров12K

Привет, Хабр!

В этой статье я опишу функциональное программирование и расскажу, как оно реализовано в Java. Помимо вопроса «что это?», я постараюсь ответить на вопросы «зачем?», «когда?» и «как?» это используется.

Читать далее

Java 24! Спецвыпуск Java Digest

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров4.7K

Всем привет! 👋 👋 👋 👋 👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Константин, Константин и Роман. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.
Сегодня вышла Java 24! Давайте посмотрим, что нового она принесла нам! 

Читать спецвыпуск

Автоматизация деплоя: из Bitbucket через Jenkins в MicroK8s — опыт финтех-разработчика

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.9K

Всем привет! Я — Java-разработчик с пятилетним опытом в финтехе, и сегодня я расскажу, как настроить CI/CD для деплоя Spring Boot приложения из Bitbucket через Jenkins в MicroK8s. Это не просто теория — я поделюсь реальным кейсом, разберу ошибки, с которыми столкнулся, и дам рабочий код. Если вы хотите автоматизировать деплой и не наступать на грабли — поехали!

Представьте: у вас есть микросервис на Spring Boot, который нужно быстро и без ошибок доставить в продакшен. Ручной деплой отнимает время, а команда требует стабильности. Я решил эту задачу с помощью Bitbucket, Jenkins и MicroK8s, но путь оказался не таким гладким, как хотелось бы. Проблемы с аутентификацией, конфликты портов и настройка окружения заставили меня попотеть. Как я справился? Об этом — в статье.

CI/CD (Continuous Integration/Continuous Deployment) — это must-have для современных разработчиков. Автоматизация сборки, тестирования и деплоя приложений экономит время, снижает вероятность ошибок и ускоряет доставку кода до продакшена. В этой статье мы разберем, как настроить полноценный CI/CD-пайплайн для Spring Boot приложения, используя связку Bitbucket, Jenkins и MicroK8s.

Читать далее

Как читать сообщения, если никто из брокеров не предоставил удобный интерфейс

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров4.4K

Пишите вы себе EDA на основе Apache Kafka, и ваши сервисы тщательно логируют все свои действия, процесс отлажен и работает годами. Вдруг один из сервисов отчитался в логах, что отправил событие в брокер, но другой по какой-то его не прочитал. Как понять, кто виноват?

Как правило, брокер сообщений между сервисами – черная коробка, которая работает, что называется «As Is». Разработчики подключают зависимости, вешают аннотации консюмеров и продюсеров, оно заводится и все рады. Но что они там подключили и как это работает никто не видит.

Так давайте же посмотрим, как мы можем открыть этот чёрный ящик на примере наиболее популярных брокеров сообщений.

Читать далее

Идеи ничего не стоят

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.6K

Команда Spring АйО перевела статью одного из создателей Hibernate, в которой он объясняет, почему ему часто приходится отвергать новые и хорошие идеи, и почему это на самом деле не означает, что он является врагом всего нового.

Читать далее

Создаём HTTP-сервер на Java NIO

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7K

Привет, Хабр!

В этой статье создадим HTTP-сервер на чистом Java NIO, без всяких Spring Boot, Jetty и прочих фреймворков. Будем разбираться, как работает неблокирующее I/O, что такое Selector, SocketChannel, и как заставить сервер обрабатывать тысячи запросов одновременно без запуска тысяч потоков.

Читать далее

CRaC в Java

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.2K

Привет, Хабр!

Сегодня рассмотрим CRaC — это технология, позволяющая создать контрольную точку работающего Java-приложения, сохранив его полное состояние: память, потоки, системные ресурсы и прочее. Иными словами, вы проводите полную инициализацию приложения один раз, делаете «снимок», а затем при повторном запуске восстанавливаете это состояние, обходя долгую процедуру холодного старта.

Читать далее

Reverse shell на Java или кошмар сисадмина

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров5.9K

По итогам расследований нескольких инцидентов с безопасностью, рассказываю что еще из «зубастого и рогатого» бывает на свете. Еще один повод бросить это ваше ИТ и уйти в монастырь.

Читать далее

Карликовый желтый гигант

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3.4K

Размышление о жизненных перспективах платформы 1С:Предприятие. Стиль изложения беглый профессионально‑метафорический.

Читать далее

Простой редактор текста при помощи java на swing

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.4K

Всем привет. Для того чтобы писать код нужен удобный инструмент, кто-то пользуется IDE, кто-то редакторами текста Emacs, VIM. Зачастую, чтобы программисту было удобно, разработчику надо соблюсти много нюансов, тоесть в одном случае есть ускорение разработки, но решение тяжеловесное, в другом случае, разработчик, чтобы пользоваться редактором начинает писать код, чтобы писать код. Конечно это крайности, и проще поставить IDE/VSCode/etc... , но что если можно найти эту золотую середину!?

Неоднократно автор пытался делать текстовый редактор, но что-то было всё не то, пока не вспомнил, что есть старый добрый SWING, и java by design иногда круто и интересно.

В этой статье хочу показать как получилось минимальными усилиями сделать то, что на С или С++ потребует больших знаний без QT/GTK/etc...

Читать далее

Ближайшие события

Концерт для Java с ИИ — разработка готовых к продакшен LLM приложений

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров3.8K

Команда Spring АйО перевела и адаптировала доклад Томаса Витале “Concerto for Java and AI — Building Production-Ready LLM Applications”, в котором рассказывается по шагам, как усовершенствовать интерфейс приложения с помощью больших языковых моделей (LLM). В качестве примера автор доклада на глазах слушателей разрабатывает приложение-ассистент для композитора, пишущего музыку для фильмов. 

Доклад будет опубликован двумя частями. В первой части рассказывается о том, как возникла проблема, какие подходы автор доклада применил к ее решению и как реализовать автоматическую классификацию персональных заметок композитора по типам, используя ИИ.

Читать далее

Null-safety в Spring приложении с JSpecify и NullAway

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.8K

Новый перевод от команды Spring АйО расскажет о проблемах, вызываемых неожиданным появлением NullPointerException в продакшен, о способах борьбы с этой проблемой, над которыми работает команда Java и о скором выходе новых решений, которые помогут разработчикам навсегда избавиться от этого кошмара.

Читать далее

Парсим сайт для получения УДК иерархии

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров761

Предыстория:

У меня на домашнем ПК скопилось некоторое количество книг в электронном формате. Это в основной массе техническая литература. И мне хотелось всё это систематизировать. Придумывать не хочется, когда в книгах есть УДК, ББК классификаторы.

Читать далее

Принципы SOLID и основы построения коммерческой организации

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4.7K

Привет, дорогой друг!

Сегодня я тебе объясню принципы SOLID максимально понятным способом.

Для того чтобы совсем упростить задачу, в этом тексте не будет ни единой строчки кода.

Представь себе, что ты решил заняться бизнесом.

Первым делом ты организуешь небольшую торговую компанию. Ты только начинаешь свой путь в бизнесе, и поэтому всё делаешь сам. И закупаешь товар, и развозишь его по точкам, и ведёшь учёт, и ремонтируешь грузовую газель.

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

Людей в твоей команде немного, все друг друга знают, вы как одна большая дружная семья. И нет-нет, но периодически, кто-нибудь из сотрудников пытается взять себе дополнительные полномочия из чужой области. То ремонтник порывается съездить на рынок и закупить товар (ему же по дороге), то продажник научить ремонтника как правильно чинить технику (он всё детство провёл в гараже, где они с друзьями чинили папину волгу), то бухгалтерша Галина Петровна решает всех построить и взять на себя часть руководящих функций.

В результате никто не знает, кто за что отвечает, ответственность размывается, и люди перестают понимать, где находятся границы их зоны ответственности.

Но ты стоишь на страже интересов бизнеса! Железной рукой ты пресекаешь безобразия и вводишь жёсткий принцип – каждый сотрудник отвечает только за своё поле деятельности, у каждого своя ответственность, и никто в чужой огород лазать не смей. Закупщик – только закупает. Продажник – только продаёт. Каждый сотрудник должен иметь только одну зону ответственности.

Читать далее

TrueSql – заново учимся ходить в базу данных. Часть 2 – количество обновленных строк и сгенерированные колонки

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров798

В первой части мы научили команду разработчиков пяти Fetch. Обучение прямому хождению в БД мы продолжим двумя короткими но важными темами: получение сгенерированных колонок и количества обновленных строк.

Читать далее

Нововведения Java 24

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров11K

Уже скоро, 18 марта, выйдет новая версия Java. Поэтому предлагаю посмотреть, какие в ней будут новшества, включая финализацию давно ожидаемых Stream Gatherers!

Читать далее

Spring AI научился видеть! Показываю, как заставить GPT находить бананы на картинках

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.4K

Новый перевод от команды Spring АйО расскажет вам о работе с мультимодальностью при работе со Spring AI и о различных вариантах работы с графическими изображениями с использованием искусственного интеллекта.

Читать далее

Вклад авторов