Вы можете поместить их в интерфейс, но имейте в виду, что в некоторых случаях транзакции могут не выполняться. См. Второй совет в разделе 10.5.6 документации Spring:
Spring рекомендует аннотировать только конкретные классы (и методы конкретных классов) с помощью аннотации @Transactional, а не аннотировать интерфейсы. Вы, конечно, можете разместить аннотацию @Transactional в интерфейсе (или методе интерфейса), но это работает только так, как вы ожидаете, если вы используете прокси на основе интерфейса. Тот факт, что аннотации Java не наследуются от интерфейсов, означает, что если вы используете прокси на основе классов (proxy-target-class = "true") или аспект на основе ткачества (mode = "aspectj"), то параметры транзакции не распознается инфраструктурой прокси и переплетения, и объект не будет заключен в транзакционный прокси, что было бы определенно плохим.
По этой причине я бы рекомендовал поставить их на реализацию.
Кроме того, для меня транзакции кажутся деталью реализации, поэтому они должны быть в классе реализации. Представьте, что у вас есть реализации оболочки для ведения журнала или тестирования (макеты), которые не обязательно должны быть транзакционными.