Size: a a a

Java/Kotlin and more

2021 May 19

AE

Alexandr Emelyanov in Java/Kotlin and more
а, AsyncRestTemplate да, потому что теперь есть реактивный webclient
источник

VS

Vitaly Sirotkin in Java/Kotlin and more
NOTE: As of 5.0 this class is in maintenance mode, with only minor requests for changes and bugs to be accepted going forward. Please, consider using the org.springframework.web.reactive.client.WebClient which has a more modern API and supports sync, async, and streaming scenarios.
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
Ну вообще RestTemplate не является http-клиентом. Это надстройка. API более высокого уровня, можно сказать. А под капотом он все равно использует один из поддерживаемых им http-клиентов, в числе которых HttpUrlConnection (встроенный в java se), Apache HttpClient и OkHttp вроде бы. Может уже и клиент из java11 в него добавили, не знаю, когда-то собирались.
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
причем по дефолту RestTemplate использует как раз HttpUrlConnection, если ничего другого ему не сказать. А это не лучший вариант. Там таймауты не удобно настраивать и прочие ограничения.
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
мы апач подсунули
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
кмк у ресттемплейта неплохой интерфейс
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
да, я тоже обычно в этой связке использую. имхо, лучшая связка для рест-темплейта
источник

VS

Vitaly Sirotkin in Java/Kotlin and more
У апача есть только косячок, там в дефолтных настройках максимум 2 коннекта. Надо не забывать править)
источник

ЮЮ

Юрий Юрий in Java/Kotlin and more
Здравствуйте.
Для Spring Boot приложения надо сохранять несколько полей, в формате ключ - значение, чтобы они хранились и когда приложение перегружается. Например, в проперти файле. В Spring есть какое-то готовое решение?
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
А application.properties/yaml чем не подходит?
источник

АВ

Алексей Васин... in Java/Kotlin and more
Всем привет, кто-нибудь сталкивался с проблемой, что когда работаешь с объектом моно в реактивной цепочке, потом тебе нужно отправить в кафку продюссер-рекорд, используя kafka-reactor, и в итоге в метод send надо передать обычный продюссер рекорд в который не положить боди(отправляемый объект) в  обертке  моно, что крайне странно конечно. Либо я избрал изначально неправильный концепт
источник

ЮЮ

Юрий Юрий in Java/Kotlin and more
Хм, трудно найти пример на запись в application.properties.
У спрингбута можно узнать расположение этого файла?
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
Так вам писать надо из запущенного приложения? Это из формулировки выше не понятно.
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
Писать конечно туда не нужно. Оно не для этого.
Такого решения из коробки нет в бута. Можно, например, подключить H2 и использовать его MVStore https://www.h2database.com/html/mvstore.html
источник

В

Влад in Java/Kotlin and more
Коллеги, подскажите плиз, столкнулся с такой проблемой. Есть метод, в нем цикл, на каждой итерации делается save() и также внутри цикла есть обрабатываемое исключение. Проблема что если на одной из итераций выбрасывается обрабатываемое исключение, то результат предыдущих итераций успешно сохраняется в бд, хотя нельзя. Над классом стоит @Transactional(rollbackFor=Exception.class). Может ктонить объяснить причину?
источник

RS

Ruslan Stelmachenko in Java/Kotlin and more
что такое "обрабатываемое исключение"?
источник

ME

Makhlov Egor in Java/Kotlin and more
Возможно, эта транзакция обернута в какую-то другую и вместо полноценного изолирования просто происходить наращивание счётчика, из-за этого полного отката не происходит 🤷‍♂

Я бы попробовал сперва подготовить все добавляемые данные (проверить выброситься ли исключение до тела транзакции) и только потом бы добавлял
источник

В

Влад in Java/Kotlin and more
наше исключение, которые сами написали
источник

AE

Alexandr Emelyanov in Java/Kotlin and more
Тебе уже отвечали https://t.me/springframeworkio/50203
источник

В

Влад in Java/Kotlin and more
By default all RuntimeExceptions rollback transaction whereas checked exceptions don't. This is an EJB legacy. You can configure this by using rollbackFor() and noRollbackFor() annotation parameters:

@Transactional(rollbackFor=Exception.class)

This will rollback transaction after throwing any exception.
источник