Обновить
126.83

Java *

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

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

Как расширить JPA для работы с PostgreSQL

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели5.6K

Всем привет! Меня зовут Антон, я — архитектор компании ITFB Group. Пережив несколько проектов, на которых встречается стек PostgreSQL с использованием связки PostgreSQL + JPA, мне удалось устранить большое количество проблем, связанных с неоптимальной интеграцией функциональности PostgresSQL в Java-приложения. В этой cтатье мы максимально подробно разберем, как можно настроить JPA для эффективной работы с PostgreSQL. Всем, кому интересна эта тема, добро пожаловать под кат)

Читать далее

Что нового в документации YDB во втором квартале 2024 года

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

Документация YDB продолжает развиваться, отвечая на растущие потребности своей разнообразной аудитории. Наша цель остаётся прежней — улучшение ясности, доступности и глубины предоставляемой информации. В этом квартале мы ввели значительные обновления и новые разделы.

Читать далее

Мониторим и нагружаем приложения Jmix

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели2.2K

Инструменты мониторинга работы приложений могут быть полезны не только DevOps’ам, но и разработчикам для исследования производительности приложения в поиске, например узких мест в его работе, поэтому в данной статье мы не только настроим мониторинг для Jmix-приложения, но и подготовимся к его синтетическому нагрузочному тестированию. Особенностью платформы Jmix в силу того, что она использует фреймворк Vaadin, является тот факт, что работа UI интегрирована с бекендом, но это также значит и то, что и метрики можно использовать прозрачно, т.е. замерять ими работу интерфейсного слоя. 

Читать далее

Volatile, Lock-free, Immutable, Atomic в Java. Как понять и начать использовать

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

Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut.

Сегодня хочу поговорить об одном из lock-free алгоритмов в Java. Разберём как с ним связано ключевое слово volatile и паттерн immutable.

Читать далее

Spring Boot Starter: практически, принципиально и подробнее. Часть 2

Время на прочтение10 мин
Охват и читатели6.5K

Продолжаю рассказывать о Spring Boot Starter. В прошлой части мы создали принципиальное решение, которое позволит запустить стартер как подключаемую к другому Spring-Boot-приложению библиотеку.

В этой части мы разберемся с зависимостями, стандартными и кастомными аннотациями.

Читать далее

Разработка ПО действительно так сложна? Или это мы делаем ее такой?

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели10K

В новом переводе от команды Spring АйО, Siva Katamreddy, девелопер адвокат в AtomicJar (Testcontainers), поделился своими мыслями о популярных в наши дни TDD, Clean, Hexagonal, Onion и Ports & Adapters. Он также постарался ответить на вопрос, который, возможно, волнует не только его: "Действительно ли мы, разработчики, так любим всё усложнять?".

Читать далее

Middle-starter-pack по spring data

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

Особенности использования Transactional в SpringBoot приложении (разбор типовых ошибок среднестатистического разработчика).

Читать далее

Настраиваем TLS контекст. КриптоПро в помощь

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели4.9K

Эта публикация – практический кейс c кратким туториалом по реализации TLS-соединения, на основе российских стандартов шифрования, основанных на компонентах КриптоПро (CP). Статья не содержит рекламы или попытки сподвигнуть к выбору конкретных компонентов. Я столкнулся с задачей реализации шифрованного подключения к системам бюро кредитных историй (БКИ) в части оценки платежеспособности физических лиц. У меня было ограничение - необходимо было использовать КриптоПро (CP). В процессе реализации задачи открыл для себя несколько интересных моментов. Процесс их "открытия" был чарующим и загадочным. Чары мне обеспечил CP, а с загадками помогали службы поддержки БКИ и CP. Этой статьей хочу помочь сэкономить время и сделать прозрачным процесс реализации шифрованного подключения. В начале статьи дам небольшой теоретический экскурс. Если Вас интересуют детали реализации, то сразу переходите к разделу "Установка и настройка CP компонентов", код, приведенный в статье выложен тут. Приятного чтения.

Читать

Тестирование асинхронного контракта Spring Boot приложения (Kafka Consumer+Producer)

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

Приветствую тебя, Хабр! Сегодня мы попробуем разобраться, как написать интеграционный\сервисный\авто тест для Spring Boot приложения, которое взаимодействует с внешним миром исключительно с помощью Kafka.

Начнем!

Эффективность Spring-приложений в рантайме. Текущее состояние дел и планы на будущее

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

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

Себастьян Делойзе, контрибьютор Spring Framework, делится обзором усилий команды Spring по оптимизации эффективности приложений во время выполнения. Он рассматривает Virtual Threads, GraalVM Native Image, Project CRaC, Project Leyden и всё это в контексте Spring!

Читать далее

Нереальная локализация

Уровень сложностиСложный
Время на прочтение25 мин
Охват и читатели4.2K

Давно хотелось раскрыть интересную тему локализации ПО, но так чтобы не повторяться и не цитировать прописные истины.

Поэтому рассказываю как локализовать обычное корпоративное Java-приложение на..  несуществующие фантастические языки: Клингонский и Р’льех.

Погрузиться

Строим свой SSO. Часть 5: Итоговый SSO, Защита от XSS/CSRF, Custom Grant Type

Уровень сложностиСредний
Время на прочтение44 мин
Охват и читатели4.2K

Всем привет! Мы продолжаем нашу серию статей по созданию собственного SSO. В этой статье мы увидим итоговый проект и разберём самые интересные решения из него. Подумаем над безопасностью приложения и настроим защиту от XSS и CSRF атак, а также изучим разные Security Headers. В заключение статьи мы создадим собственый Grant Type.

Читать далее

Аннотации vs Документационные комментарии vs Маркерные интерфейсы

Время на прочтение3 мин
Охват и читатели982

Прежде чем обсуждать, когда использовать аннотации вместо комментариев, важно сначала понять, что такое аннотации и для чего они используются в Java.

Аннотации не заменяют комментарии к документации (у них есть и другие применения), но во многих случаях (особенно в тех случаях, когда нам нужны аналогичные структурированные комментарии) они предпочтительнее комментариев. Причина в том, что аннотации являются типами в Java, как и любой другой тип данных, определяемый пользователем. И, следовательно, их можно использовать после того, как они определены.

Аннотации в Java на самом деле представляют собой всего лишь форму интерфейсов, и, следовательно, определение типа аннотации похоже на определение интерфейса. Ключевому слову «интерфейс» в определении аннотации предшествует символ «@».

Типичный комментарий к документации — это то, что обычно появляется в начале любого определения класса. Он содержит имя автора, версию, дату, дату последнего изменения и т. д. Итак, пример комментария будет выглядеть примерно так:

Читать далее

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

Пишем кастомный Plugin SonarQube

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

Привет всем! Недавно я решил поэкспериментировать с SonarQube и создать свой собственный кастомный плагин для проверки кода на соответствие моим правилам разработки. В этой статье я поделюсь с вами своим опытом и покажу, как вы тоже можете создать такой плагин своими руками.

Читать далее...

Побитовые проверки в Java и почему они так неоднозначны

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

Операторы "&" и "|" не вызывают вопросов, когда применяются в подходящих ситуациях. Но знаете ли вы о всех последствиях использования побитовых операторов вместо логических в Java? В этой статье мы рассмотрим как плюсы производительности такого подхода, так и минусы его читабельности.

Читать далее

Camunda для backend-разработчика — как ей пользоваться

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

Я написала этот текст из желания помочь разработчикам, которым только предстоит познакомиться с Camunda. С чего начать и как не потеряться - подробно, с кодом и скринами.

Читать далее

Исправляем следующие 10 000 багов, связанных с наложением ссылок

Время на прочтение18 мин
Охват и читатели2.7K

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

Под катом автор блога Considerations on Codecrafting рассматривает ошибки, связанные с наложением ссылок, предлагает методы их предотвращения и призывает внедрить эти методы на уровне проектирования новых языков.

Читать далее

Как защитить веб сервисы при помощи шлюза OpenIG

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели1.2K

Обеспечение безопасности веб сервисов — одна из важных частей процесса разработки. Если если в инфраструктуре несколько сервисов, то каждый из них должен быть должным образом защищен. Если реализовывать проверки политик безопасности в каждом сервисе, то затраты на разработку и поддержку таких сервисов существенно возрастают. При этом не избежать дублирования кода и ошибок разработки. Поэтому, управление защитой сервисов должно быть централизованным. Далее мы рассмотрим, как организовать централизованную защиту приложений на примере API-шлюза с открытым исходным кодом OpenIG, а так же добавим проверку авторизации доступа с JWT токеном

Исходный код для статьи https://github.com/maximthomas/openig-protect-ws/

Читать далее

«Скрипач не нужен» или что делать с тестовыми паролями

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели1.3K

В любой разработке рано или поздно появляются тестовые стенды — отдельные инсталляции тестовой сборки вашей разрабатываемой системы, с тестовыми данными и тестовыми же учетными записями. Именно отсюда происходит знаменитое «admin/admin», которое вбивал в поля авторизации наверное каждый разработчик.

Теперь представьте что у вас в разработке не один проект а скажем 50, часть из которых требует нескольких стендов. Знакомо?

Читать далее

От логов к аудиту

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

Статья родилась, как водится, из рабочей задачи — нужно было внедрить аудит-логирование в некоторые микросервисы на Java и Spring.

Читать далее

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