Для защиты бизнес-логики от случайного попадания в неё IO, её надо выносить из Spring-биновсм. Структурный дизайн. Древний секрет простого и быстрого кода - Шаг 5: создание защитного барьера между бизнес-логикой и вводом-выводомСтруктурный дизайн. Древний секрет простого и быстрого кода. (доклад и пост)