Не попадитесь на накрученные каналы! Узнайте, не накручивает ли канал просмотры или подписчиков Проверить канал на накрутку
Прикрепить Телеграм-аккаунт Прикрепить Телеграм-аккаунт

Телеграм канал «Чашечка Java»

Чашечка Java
7.5K
862
704
6
9.3K
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Подписчики
Всего
8 361
Сегодня
0
Просмотров на пост
Всего
564
ER
Общий
6.75%
Суточный
5.85%
Динамика публикаций
Telemetr - сервис глубокой аналитики
телеграм-каналов
Получите подробную информацию о каждом канале
Отберите самые эффективные каналы для
рекламных размещений, по приросту подписчиков,
ER, количеству просмотров на пост и другим метрикам
Анализируйте рекламные посты
и креативы
Узнайте какие посты лучше сработали,
а какие хуже, даже если их давно удалили
Оценивайте эффективность тематики и контента
Узнайте, какую тематику лучше не рекламировать
на канале, а какая зайдет на ура
Попробовать бесплатно
Показано 7 из 7 530 постов
Смотреть все посты
Пост от 12.10.2026 09:01
18
0
0
Развёрнутое пояснение:

1. Создаётся изменяемый список config, в который добавляется название профиля prod.

2. Collections.unmodifiableList возвращает представление этого списка с запретом изменений через само представление; отдельная копия элементов не создаётся.

3. Через config исходный элемент заменяется на test. Операция разрешена: исходный список остаётся изменяемым. Замена не добавляет второй элемент.

4. При печати view читает актуальное содержимое исходного списка, поэтому вывод содержит единственный элемент test. Исключения нет, поскольку изменение выполнялось через config.

Почему это важно

Задача проверяет понимание коллекций Java и общего изменяемого состояния. Запрет изменений через представление не гарантирует неизменность конфигурации: компонент, сохранивший исходный список, может менять данные, которые видят остальные. Если нужен стабильный снимок, следует сначала скопировать список.
Пост от 12.10.2026 08:01
45
0
1
Пост от 11.10.2026 18:20
158
0
3
Spring Framework 7: настройка повторов при сбоях

В Spring Framework 7 и Spring Boot 4 повторы доступны без отдельной зависимости spring-retry. В разборе настройки повторов показаны два способа: аннотация @Retryable на методе и программный вызов через RetryTemplate.

При миграции @EnableRetry заменяется на @EnableResilientMethods. Меняется и подсчёт вызовов: прежний maxAttempts = 6 включал первую попытку, а новый maxRetries = 5 задаёт только повторы. Общее число попыток остаётся тем же.

В примерах множитель задержки 2 увеличивает паузы до 1, 2, 4, 8 и 16 секунд, а jitter добавляет случайное отклонение. Для программного варианта показана сборка RetryPolicy и выполнение вызова через RetryTemplate.execute(). Повторы не заменяют поиск причины сбоя.

#spring #java
Пост от 11.10.2026 13:10
128
0
4
Вызов диагностических команд JVM из Java без запуска jcmd

Каждый запуск jcmd создаёт новую JVM. Если вы встраиваете диагностику в собственный Java-инструмент, команды можно вызывать через JMX, встроенный механизм управления JVM.

В руководстве по вызову DiagnosticCommand разобрано подключение к работающей JVM через Attach API: запуск локального агента управления, получение MBeanServerConnection и вызов команды через invoke. Пример получает параметры JVM и команду запуска Java-приложения.

Имена команд нужно преобразовать: VM.command_line становится vmCommandLine. В статье есть функция преобразования и полный код вызова. Пример пока не поддерживает аргументы диагностических команд.

#java #jvm
👍 1
Пост от 11.10.2026 09:01
167
0
0
Развёрнутое пояснение:

1. Контроллер обращается к сервису через прокси Spring; активной транзакции в этот момент нет.

2. Для метода submit транзакционные настройки не заданы, поэтому прокси передаёт управление объекту сервиса без открытия транзакции.

3. Метод submit напрямую вызывает save у того же объекта. Такой вызов не проходит через прокси, который применяет транзакционные настройки.

4. Аннотация @Transactional на save сама по себе не запускает транзакцию: в режиме прокси её должен обработать перехватчик Spring. Поэтому транзакция сервиса не открывается, а отсутствие транзакции само по себе не вызывает указанного исключения. Отдельные операции репозитория могут иметь собственные транзакционные границы.

Почему это важно

Задача проверяет понимание прокси и декларативного управления транзакциями Spring. При обработке заказа такой внутренний вызов может оставить несколько записей без общей транзакции: сбой поздней операции не обязательно отменит предыдущие. Если все операции submit должны быть атомарными, транзакционную границу можно задать на submit; если нужна отдельная граница для save, его можно вынести в другой сервис и вызывать через прокси.
Пост от 11.10.2026 08:00
68
0
0
Пост от 10.10.2026 18:20
51
0
3
Регистрация плагинов по списку через BeanRegistrar в Spring Framework 7

Spring Framework 7 и Spring Boot 4 позволяют программно регистрировать бины через BeanRegistrar. В руководстве по подключению плагинов разобран пример приложения, где набор плагинов задаётся списком в настройках.

Регистратор читает свойства app.plugins[0], app.plugins[1] и далее через Environment, пока не встретит отсутствующее значение. Затем сопоставляет имена плагинов с классами и регистрирует их через BeanRegistry. Подключение самого регистратора показано через @Import.

Автор отмечает, что для большинства случаев условной регистрации бинов, по его мнению, достаточно аннотаций семейства @ConditionalOn….

#spring #java
Смотреть все посты