Еще один способ подключения common модуля для микросервисов

Ранее в одной из статей в нашем блоге был рассмотрен один из возможных способов подключения разделяемого между микросервисами common модуля при помощи ImportBeanDefinitionRegistrar Spring-а. Он обладает существенным недостатком: инструменты статического анализа кода не могут понимать такую “уличную магию”. Поэтому в данной статье рассмотрен другой способ решения этой же задачи при помощи классического Spring starter-а.

Optimistic VS pessimistic locking в SQL

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

Зачем Реакту понадобился компилятор?

React используется для создания интерактивных пользовательских интерфейсов (UI). Под интерактивностью подразумевается то, что когда пользователь взаимодействует с UI, мы обычно хотим обновить страницу новой информацией, полученной в результате этого взаимодействия.

Создаем приложение реального времени с помощью Socket.IO и Kotlin

Современные веб-приложения должны идти в ногу с ожиданиями пользователей, которые хотят мгновенных, интерактивных взаимодействий в реальном времени, будь то уведомления, чаты или живые обновления данных. Такие функции требуют технологий, способных устанавливать и поддерживать постоянную связь между клиентом и сервером. Socket.IO — это мощный инструмент, который открывает двери к созданию таких приложений. В этой статье мы рассмотрим, как использовать Socket.IO для реализации двусторонней связи в реальном времени и интегрировать его с языком Kotlin для создания современных приложений. В качестве практического примера мы создадим чат-приложение, демонстрируя все этапы — от настройки сервера на Node.js до разработки клиента на Kotlin.

Liferay: настройка прав доступа на редактирование пользователей для ваших ролей

В этой статье мы кратко рассмотрим неочевидный момент работы с системными сущностями самого лайфрея; увидим, как настраивать доступ к системным ресурсам Liferay для произвольной роли на примере сущности User

Оптимизация работы со строками в Java: замена String на StringBuilder

Класс String в Java является неизменяемым, то есть после создания объекта строки его содержимое изменить нельзя. Любая операция изменения строки фактически создает новый объект: String str = "Hello"; str = str + " World"; В примере создается новый объект строки "Hello World", а старый объект "Hello" остается в памяти до тех пор, пока не будет собран сборщиком мусора.

Как устроено кеширование данных в Hibernate

Hibernate — один из самых популярных ORM-фреймворков для работы с базами данных в Java. Одной из его ключевых особенностей является автоматизация управления состоянием объектов, минимизация запросов к базе и встроенные механизмы оптимизации.

Оптимизация репозитория с Yarn Zero Installs с помощью Git LFS.

Yarn Zero Installs — это подход, предлагаемый менеджером пакетов Yarn, который позволяет избавиться от необходимости выполнения команды yarn install после клонирования репозитория. Все зависимости, необходимые для работы проекта, хранятся непосредственно в самом репозитории (в директории .yarn/cache в виде zip-архивов), что делает его готовым к использованию сразу после клонирования.

Отключаем автозапуск Server Manager в Windows Server

Диспетчер серверов (Server Manager) запускается автоматически при входе(локальном или RDP) на Windows Server с учетной записью, которая входит в группу Administrators. В большинстве случаев это излишне и по-человечески раздражает, поэтому рассмотрим, как можно избавиться от такого поведения.

Управление ролями и компонентами Windows Server, используя Get-WindowsFeature

В Windows Server 2012R2/2016/2019  возможно использование PowerShell для управления ролями и компонентами, что значительно быстрее, чем использование графического функционала(а также является единственным способом при работе с установленными без графической оболочки экземплярами ОС).

Перенос баз данных MS SQL на SSD диск в составе кластера

Потребовалось перенести базы данных с SAS-диска на SSD для повышения производительности и уменьшения времени переноса активной ноды. Описанный способ является "быстрым" методом переноса, и несмотря на показанную работоспособность, имеет некоторые риски - поэтому применяйте его с учетом этого.

Добавление собственных разрешений в Liferay портлеты

Одной из ключевых задач при работе с портлетами, создаваемыми на базе платформы Liferay, является разграничение прав доступа к действиям над портлетом и к частям функциональности самого портлета. В Liferay есть возможность определить собственные разрешения для портлета, которые бы расширяли стандартный набор. Сегодня покажу, как это сделать

Как правильно настроить поддержку CORS в Spring API с использованием Spring Security

Иногда самые простые задачи в разработке могут превращаться в настоящую головоломку. Так случилось и с нами: наша команда столкнулась с неожиданной проблемой при интеграции API, написанного на Java с использованием Spring, и сайта-лендинга заказчика. Ошибка CORS (Cross-Origin Resource Sharing) стала барьером для нормального взаимодействия между сервисами. В этой статье я расскажу, как мы решили проблему и какие подходы лучше использовать в зависимости от конфигурации вашего проекта.

Primefaces: многострочный текст в заголовке accordionPanel

Компонент accordionPanel библиотеки PrimeFaces позволяет создавать раскрываемые списки. За сам элемент списка отвечает атрибут title, принимающий строку текста. Нет возможности передать туда HTML, а любые переводы строки игнорируются браузером при отображении. Что делать, если заказчик требует многострочный текст, читайте в статье.

Astra automation

Рассмотрим установку astra-automation и развёртывание простого сценария. В данном примере рассмотрим простое развёртывание «Контроллер на одном узле» (https://docs.astra-automation.ru/1.1/installation/inventory/aac/single-node/).

Что происходит, если обнулить id у JPA Entity и пересохранить ее?

Во время работы с JPA и Hibernate нам часто приходится совершать разные манипуляции с JPA entites. Например, чтобы не копировать уже существующий в памяти приложения объект целиком, можно попробовать для уже сохраненной в БД сущности задать id=null и пересохранить ее.

Astra linux

Рассмотрим первиную настройку и развёртывание Astra Linux. Для общего ознакомление с Astra Linux есть курс во вполне удобной и дружелюбной форме ​​​​​​​Немного общей информации относительно верии Astra linux и репозиториях.

Как Rust™ решил самую сложную проблему software engineering

Безопасная работа с памятью в низкоуровневом языке программирования, гарантированная самим языком. Для людей, близко знакомых с, к примеру, программированием на C, это утверждение может показаться оксюмороном, однако, разработчики языка Rust™ пытаются достичь именно этого при помощи трех концепций: ownership, borrowing и lifetimes.

Кастомная легенда к графику в react-chartjs-2

Так уж вышло, что Chart.js не предоставляет возможности влиять на внешний вид легенды графика. Можно изменить некоторые её параметры, но чтобы хоть как-то поменять структуру её элемента необходимо прибегнуть к помощи плагина. При попытке воспроизвести пример с плагином в среде с реактом я столкнулся с проблемой, при которой элементы легенды рисовались несколько раз.

Как вносить изменения в WAR файл: распаковка, редактирование и повторная упаковка для быстрого обновления веб-приложений

WAR (Web Application Archive) — это формат архивов, используемый для разворачивания веб-приложений в серверах приложений, таких как Tomcat, JBoss и другие. Бывают ситуации, когда необходимо изменить файлы внутри WAR-архива, например, обновить конфигурацию, стили или другие ресурсы приложения. В этой статье мы подробно рассмотрим процесс распаковки, редактирования и повторного упаковывания WAR-файла, а также объясним, в каких случаях такой подход подходит, а в каких — нет.

Не сохраняется объект в базу. В чем может быть проблема?

В этой статье разберем проблемы, которые приводят к тому, что Hibernate не сохраняет объект в базу с ошибкой could not execute statement; SQL [n/a]; constraint [“id" of relation "ProblemClass”];: частые проблемы и пути их решения.

Логирование Spring Boot с помощью Spring AOP и Logback

Логирование - важная часть любого приложения. Оно предоставляет возможность контроля и мониторинга работы системы, что играет немаловажную роль в жизни программного обеспечения. Данная статья о том, как правильно организовать логи при работе приложений, использующих Spring Boot

У меня есть сеть, но не открываются странички в браузере...

Индикация показывает, что сеть подключена, но браузер не может загрузить ни одной странички? В первую очередь, проверим есть ли роутинги до чего-либо, или все совсем плохо: ping google.com Если мы получаем ответ, но в браузере все еще ничего, похоже на проблему с dns сервером.

Помогите Даше найти потерянное выбранное значение в selectOneMenu

Когда мы разрабатываем веб-приложения с использованием JavaServer Faces (JSF), нам часто приходится разбираться с неожиданными нюансами поведения jsf-компонентов. Сегодня поговорим о следующей проблеме с selectOneMenu: выбранное значение выпадающего списка отображается пустым, даже если в базе данных есть все необходимые данные, а в поле бина выбрано корректное значение.

Ошибка "Cannot find module or its corresponding type declarations" при использовании Yarn Plug'n'Play с TypeScript

Что за Plug'n'Play? Это стратегия установки пакетов, появившаяся в Yarn 2. С недавних пор она является стратегией по умолчанию, заменяя собой всем привычную установку в директорию node_modules. Но как она работает? Первым делом Yarn разрешит зависимости проекта и установит их в собственный кэш, пропустив шаг с распаковкой (разархивированием) и сохранением в node_modules.

Основные методы аутентификации для REST API

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

XPath и JsonPath в Apache NiFi

Продолжая статьи о работе с данными, нельзя не упомянуть такую небольшую, но важную тему как извлечение данных из XML и JSON документов с использованием языков выражений XPath и JsonPath. В прошлых статьях мы занимались трансформацией всего документа - реструктуризацией JSON или конвертацией JSON в XML и наоборот.

Mikrotik - убийца Part II

Отродясь такого не бывало, и опять то же самое Ⓒ‎ Черномырдин С момента написания предыдущей статьи количество коммутаторов Mikrotik не уменьшилось, а совсем даже наоборот, а значит пришла пора поделиться новыми особенностями эксплуатации данного оборудования.

Установка VirtualBox 7.1 из репозитория пакетов в Ubuntu 24.04

Нынешней весной вышел очередной LTS-релиз популярного дистрибутива Linux, а значит, пришла пора постепенной миграции на него всех наших убунтовых систем. Вот и у меня на прошлой неделе, наконец, дошли руки до апгрейда своей машины. В целом миграция прошла нормально: система работает вполне шустро и стабильно, каких-то заметных "подводных камней" заметить пока что не удалось. Но вот в процессе апгрейда VirtualBox мне неожиданно пришлось немного поплясать с бубном, чем я и решил позволить себе поделиться здесь.

Работа с Generic типами в Jackson

Когда мы работаем с сериализацией и десериализацией JSON с использованием библиотеки Jackson, часто возникает необходимость преобразования JSON в сложные обобщённые типы, такие как List или Map. Для этого Jackson предоставляет класс TypeReference, который решает проблему десериализации обобщённых типов.

Группы безопасности для managed k8s в окружении Яндекс облака

Иногда, например при внедрении anti-DDoS сервисов, возникает необходимость ограничения доступа к публичному сервису в облаке, при этом сам сервис в рамках архитектуры решения находится за  простейшим 5-tuple балансировщиком NLB (Network Load Balancer),  где создание привычных правил, как например в ALB(Application Load Balancer (aka  L7-балансировщик) в принципе невозможно.

SSH ключи, или как упростить аутентификацию на серверах

В мире информационных технологий безопасность данных и доступа к ресурсам является одной из главных задач. Одним из ключевых инструментов обеспечения безопасности являются SSH ключи (Secure Shell keys). В этой статье мы рассмотрим, что такое SSH ключи, как они работают, и как их использовать для обеспечения безопасного доступа к удаленным серверам и системам.

Ubuntu 24.04: Thunderbird не видит почтовые аккаунты после обновления системы

Одним из следствий обновления Ubuntu с версии 22.04 до версии 24.04 стал переход на snap-версию почтовика Thunderbird. Если ранее вы использовали deb версию и имели настроенные аккаунты, адресную книгу, фильтры и прочие, то после обновления перед вами мог открыться девственно чистый почтовик.

FastCGI на Java + конфигурация Apache Httpd

Содержимое данной статьи вряд ли когда-нибудь кому-нибудь пригодится в современной веб-разработке, все-таки FastCGI в экосистеме Java абсолютно бесполезен в виду наличия сервлетов, реакторов и прочих более удобных технологий для разработки серверов на этом языке. Поэтому данная статья носит сугубо иллюстративно-развлекательный характер :)
RSS (Открывает новое окно)(Открывает новое окно)
thumbnail Алексей Егошин
Записи: 16
Дата: 11.01.25
thumbnail Daria Zuban
Записи: 10
Дата: 10.01.25
thumbnail Александр Аксёнов
Записи: 6
Дата: 09.01.25
thumbnail Romo Fedoroff
Записи: 39
Дата: 07.01.25
thumbnail Никита Рогаленко
Записи: 9
Дата: 28.12.24
thumbnail Marina Pashnina
Записи: 33
Дата: 10.12.24
thumbnail Тимофей Перцев
Записи: 35
Дата: 09.12.24
thumbnail Дмитрий Сазонов
Записи: 61
Дата: 06.12.24
thumbnail Александра Пирс
Записи: 30
Дата: 29.11.24
thumbnail Nikolay Emchenko
Записи: 19
Дата: 27.11.24
thumbnail Jonathan F. Keker
Записи: 6
Дата: 07.11.24
thumbnail Andrey Karabanov
Записи: 2
Дата: 31.10.24
thumbnail Dmitry Afanasiev
Записи: 63
Дата: 04.10.24
thumbnail Evgenij Tsopa
Записи: 52
Дата: 02.10.24
thumbnail Dmitry Sheshukov
Записи: 17
Дата: 26.09.24
thumbnail Владимир Карташев
Записи: 1
Дата: 17.09.24
thumbnail Михаил Алексеевич Нягин
Записи: 1
Дата: 29.08.24
thumbnail Ольга Денисовна Смирнова
Записи: 2
Дата: 05.08.24
thumbnail Sviatoslav Osipov
Записи: 4
Дата: 04.08.24
thumbnail Егор Александрович Стуков
Записи: 1
Дата: 01.06.24
thumbnail Лоликонщик Отбитый
Записи: 3
Дата: 31.05.24
thumbnail Антон Семёнович Макаренко
Записи: 3
Дата: 28.05.24
thumbnail Danil Khanalainen
Записи: 3
Дата: 08.05.24
thumbnail Alexey Weiss
Записи: 17
Дата: 07.05.24
thumbnail Денис Серянкин
Записи: 2
Дата: 18.12.23
thumbnail Anna Ershova
Записи: 2
Дата: 30.10.23
thumbnail Erik Karapetyan
Записи: 12
Дата: 09.09.23
thumbnail Pavel Danilov
Записи: 12
Дата: 09.09.23
thumbnail Maxim Zhukov
Записи: 152
Дата: 20.06.23
thumbnail Vladislav Sivirin
Записи: 1
Дата: 22.05.23
thumbnail Vadim Kholoshnia
Записи: 1
Дата: 17.04.23
thumbnail Andrei Maksimov
Записи: 19
Дата: 21.03.23
thumbnail И Горь
Записи: 27
Дата: 20.02.23
thumbnail Dmitry Komarov
Записи: 2
Дата: 02.06.22
thumbnail Semyon Gruzdev
Записи: 1
Дата: 17.11.21
thumbnail Victor Scherbakov
Записи: 3
Дата: 03.09.21
thumbnail Ivan Kayukov
Записи: 10
Дата: 17.08.21
thumbnail Alexander Zhermal
Записи: 8
Дата: 16.04.21
thumbnail Alexander Yarkeev
Записи: 42
Дата: 23.12.20
thumbnail Alexey Pismak
Записи: 2
Дата: 09.12.20
thumbnail Александр Исаев
Записи: 5
Дата: 15.09.20
thumbnail Александр Пашнин
Записи: 25
Дата: 10.09.20
thumbnail Danil Sinitskiy
Записи: 3
Дата: 02.09.20
thumbnail Valeriy Urrievich Kireev
Записи: 26
Дата: 15.01.20
thumbnail Vladimir Nikolaev
Записи: 14
Дата: 30.12.19
thumbnail Ivan Uskov
Записи: 23
Дата: 16.12.19
thumbnail Андрей Дьяков
Записи: 25
Дата: 27.06.19
thumbnail Sergey Zhmylove
Записи: 45
Дата: 14.03.18
thumbnail Lev Koznov
Записи: 18
Дата: 14.07.17
thumbnail Никита Валерьевич Акентьев
Записи: 1
Дата: 29.06.17
thumbnail DEADBEEF
Записи: 1
Дата: 16.01.17
thumbnail Никита Патрахин
Записи: 2
Дата: 15.08.16
thumbnail Vladimir Berlev
Записи: 3
Дата: 26.11.15
thumbnail Sergey Klyaus
Записи: 58
Дата: 21.06.15
thumbnail Олег Олегович Кулаченко
Записи: 1
Дата: 28.01.15
thumbnail Pakhom Golynga
Записи: 20
Дата: 03.03.14
thumbnail Vladislav Sovinskiy
Записи: 11
Дата: 10.01.14
thumbnail Илья Валентинович Перминов
Записи: 19
Дата: 04.09.13
thumbnail Konstantin Borzov
Записи: 7
Дата: 20.06.13
thumbnail Anthony Dmitriev
Записи: 4
Дата: 19.02.13
thumbnail Nicolay Smirnov
Записи: 6
Дата: 02.05.12
thumbnail Alexander Deiter
Записи: 16
Дата: 08.09.11
thumbnail Serge Klimenkov
Записи: 8
Дата: 26.07.11
thumbnail Roman Ambrosenko
Записи: 3
Дата: 18.01.11
thumbnail Sergey Shilin
Записи: 9
Дата: 05.11.10
thumbnail Ruslan F. Isbarov
Записи: 1
Дата: 31.03.10
thumbnail Алексей Сергеевич Лемешев
Записи: 1
Дата: 22.03.10