Лучше конечно так не делать, но если очень хочется поможет параметр -Daether.connector.https.securityMode=insecure
В Spring 7 | Spring Boot 4 появилась возможность достаточно легко настраивать версионность API сервера. К сожалению, пока большинство примеров не слишком подробно показывают как настроить версионирование API через путь в URL. В этом примере остановлюсь как раз на настройке этого сценария.
Читать далее
В большинстве случаев все серверные Java приложения в данный момент запускаются в контейнерах. Для того чтобы было проще управлять в том числе и выделенными ресурсами. Но JVM не всегда ведет себя в контейнере так как ожидается и не всегда удается ее правильно настроить. Дальше посмотрим один из примеров настройки JVM для работы в контейнере.
Читать далее
Следующая итерации в развитии Spring JDBC API после JdbcTemplate - JdbcClient выглядит как ощутимый апгрейд. Он объединяет в себе возможности как JdbcTemplate так и NamedParametersJdbcTemplate. При этом так же расширяет функционал и позволяет получаться сразу Stream вместо коллекции, если мы хотим с этой коллекцией потом что-то делать. Но тут кроется небольшая опасность про которую не стоит забывать - если мы получаем Stream от JdbcClient транзакция а соотвественно и соединение с БД не будет закрыто до того момента пока не будет вызван терминальный оператор на возвращаемом Stream-е. Чем это может грозить?
Читать далее
Если при разработке микросервиса возникает необходимость хранить какие-то данные на диске для обеспечения доступности между перезапусками приложения, но отдельная БД выглядит как перебор. На помощь может прийти Map<D,B>.
Читать далее
Написал статейку на Хабр по теме. Читать тут
Изучаю возможность использования gRPC для взаимодействия между микро-сервисами в качестве замены REST API. Выглядит очень интересно, да и поддержка со стороны Spring появилась неплохая. Правда пока недостаточно актуальных гайдов на эту тему, поэтому оставлю тут небольшой примерчик реализации gRPC клиента и сервера на Java с использованием Spring boot.
Читать далее
Решил попробовать использовать Podman вместо Docker, так как последний как-то странно себя ведет последнее время - повышенное потребление ресурсов и произвольный запуск контейнеров при старте. Пока еще изучаю нюансы, но в целом переезд с одного на другой выглядит достаточно бесшовным. Пару сред уже перевез в Podman, как средствами Podman Desktop, так и через CLI и Compose. По потреблению, скорости запуска и отзывчивости интерфейса пока ощущения поприятнее чем от Docker Desktop.
Открыл для себя неплохой инструмент для работы с curl чтобы легко было просмотреть JSON из тела ответа в отформатированном виде и нормальным отображением юникод символов. Синтаксис команды curl https://dummyjson.com/test | jq .
Эксперименты с hunspell.
Наконец нашел себя в ситуации когда оказалось очень полезным использование запечатанных классов на практике. В паре со switch и pattern matching, когда в зависимости от класса наследника нужно делать различные действия. С запечатанными классами нет необходимости делать default ветку для switch и придумывать обработку для случая которого быть не может.
Попробовал попользоваться OpenIDE. В целом производит более приятное впечатление чем GIGA. Особенно понравилось наличие рабочего магазина плагинов, какая-никакая поддержка спринга из коробки (хоть и средствами Amplicode). Но при переходе с Idea Ultimate всё равно больно конечно, особенно не хватает инструмента для работы с БД.
Игрался с библиотекой Bouncy Castle для подписи данных с помощью обезличенной ЭЦП по алгоритмам ГОСТ Р 34.10, ГОСТ Р 34.11 для передачи данных в РПН.
Открыл для себя Spotless - неплохой инструмент для контроля code style на Java. Изучаю. Будем внедрять.