Size: a a a

Spring Framework and more

2019 February 06

G

Grigori in Spring Framework and more
Mikhail Mutagarov
Спасибо большое ребят)) Будем учиться кататься))
по поводу твоих котов, если они хранятся в транзакционном хранилище (например БД), все твои проблеммы с синхронизацией данных решаются через уровни изоляции транзакций. т.е. как вести себя системе, когда одна транзакция будет работать внахлест с другой транзакцией. В 99% случаев достаточно уровня изоляции READ_COMMITTED (он же поумолчанию) + используй оптимистические блокировки (если хибер, то достаточно добавить одно поле с версией), что бы сохранить целостность данных.
источник

MM

Mikhail Mutagarov in Spring Framework and more
спасибо большое
источник

PB

Pavel Bukhmatov in Spring Framework and more
Mikhail Mutagarov
а можно еще ссылочку про прокси?
https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#aop-api
Можно вообще и с предыдущего раздела почитать
источник

RP

Roman Patkin in Spring Framework and more
Всем привет, есть рест контроллер, в котором вызывается метод создания сущности (в аргументах есть BindingResult result), в нем есть валидация:
statusValidator.validate(attributes, result);
if (!result.hasErrors()) {
   ... call service

statusValidator инжектиться как зависимость. Пишу интеграционый тест на этот метод, из-за того, что валидатор замокан, он не отрабатывает, и метод validate у него void. Как сделать, чтобы валидация сработала?
источник

PB

Pavel Bukhmatov in Spring Framework and more
Roman Patkin
Всем привет, есть рест контроллер, в котором вызывается метод создания сущности (в аргументах есть BindingResult result), в нем есть валидация:
statusValidator.validate(attributes, result);
if (!result.hasErrors()) {
   ... call service

statusValidator инжектиться как зависимость. Пишу интеграционый тест на этот метод, из-за того, что валидатор замокан, он не отрабатывает, и метод validate у него void. Как сделать, чтобы валидация сработала?
Не очень понял кейс. Интеграционный тест, но валидатор тем не менее замокан?
Почему бы в тестах не использовать другую реализацию валидатор, которая всегда "правильно" валидирует, если это нужно?
источник

RP

Roman Patkin in Spring Framework and more
Pavel Bukhmatov
Не очень понял кейс. Интеграционный тест, но валидатор тем не менее замокан?
Почему бы в тестах не использовать другую реализацию валидатор, которая всегда "правильно" валидирует, если это нужно?
Да, я уже начал догонять, что в интеграционном тесте не надо мокать
источник

RP

Roman Patkin in Spring Framework and more
А есть что-то по интеграционным тестам в спринге почитать? Я просто из руби мира, и там под тесты своя база поднимается, но сколько не смотрел статей по спрингу, везде все мокается
источник

PB

Pavel Bukhmatov in Spring Framework and more
Roman Patkin
А есть что-то по интеграционным тестам в спринге почитать? Я просто из руби мира, и там под тесты своя база поднимается, но сколько не смотрел статей по спрингу, везде все мокается
Обычно тесты в спринге запускаться в своем особом тестовом профиле, где прописана тестовая база (если она нужна. Можно в тестовом профиле например тестировать на in-memory базе, а на проде разворачивать на реальную)

Спринг и junit к слову дружат с testcontainers, поэтому можно в тестах поднимать "почти реальную базу" (да и вообще все что угодно) без особых проблем в контейнерах, которые сами после тестов отомрут.

Из статей могу для начала посоветовать ознакомься с официальной докой по спрингу и спринг буту (если использует). И там, и там есть отдельные главы, посвященные тестированию
Ну или гугл, конечно)
источник

RP

Roman Patkin in Spring Framework and more
Pavel Bukhmatov
Обычно тесты в спринге запускаться в своем особом тестовом профиле, где прописана тестовая база (если она нужна. Можно в тестовом профиле например тестировать на in-memory базе, а на проде разворачивать на реальную)

Спринг и junit к слову дружат с testcontainers, поэтому можно в тестах поднимать "почти реальную базу" (да и вообще все что угодно) без особых проблем в контейнерах, которые сами после тестов отомрут.

Из статей могу для начала посоветовать ознакомься с официальной докой по спрингу и спринг буту (если использует). И там, и там есть отдельные главы, посвященные тестированию
Ну или гугл, конечно)
Большое спасибо, буду разбираться
источник

PB

Pavel Bukhmatov in Spring Framework and more
Roman Patkin
Большое спасибо, буду разбираться
Если что, пиши)
источник

..

. . in Spring Framework and more
Всем привет
источник

..

. . in Spring Framework and more
когда использовать @transactional ?
источник

..

. . in Spring Framework and more
у меня в проекте выскакивает ошибка об отсутствии @transactional на простом select-е
источник

AT

Arqin T in Spring Framework and more
а зависимости есть в таблице селекта?
источник

..

. . in Spring Framework and more
зависимости с другими таблицами?
источник

AT

Arqin T in Spring Framework and more
уху
источник

..

. . in Spring Framework and more
Ага
источник

AT

Arqin T in Spring Framework and more
ну вообще надо в конексте смотреть что с этими данными происходит в методе класса откуда вызвается селект и вообще что используется для работы с БД. spring data?
источник

AT

Arqin T in Spring Framework and more
а вообще может transactionManager не сконфигурирован...
источник

AT

Arqin T in Spring Framework and more
источник