Встречается на собеседованиях • сегодня
Что будет при @Transactional компоненте с private методом
В Spring @Transactional над private-методом не будет работать, так как Spring использует AOP-прокси для реализации транзакций. Прокси не может перехватывать вызовы private-методов из-за ограничений Java.
Пример:
java
@Service
public class UserService {
@Transactional
private void updateUser() { // Не сработает!
// Логика обновления
}
}Решение:
- Сделать метод
publicилиprotected - Использовать self-injection (
@Autowiredсамого себя) и вызывать метод через него - Применить AspectJ с compile-time weaving (но это сложнее)
Лучшая практика — всегда делать транзакционные методы public.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы