В моем проекте я столкнулся с проблемой. Аннотация @Transactional
в некоторых классах не работает. После перезапуска модуля аннотация работает. Я открыл класс в отладке и увидел, что прокси CGLIB не используется в классе, и используется, если я перезапускаю модуль без изменений!
В конечном итоге проблема была в том, что у проекта была пользовательская библиотека, когда в каком-то классе в @PostConstruct
были зарегистрированы бины-дубликаты моих бинов с beanDefinitionRegistry.registerBeanDefinition()
и после переопределения бина в классе неполного рабочего дня работали без прокси. Но я не могу понять, почему? Почему Spring создает / или заменяет / или использует bean-компонент без CGLIB-прокси?
Я исправил это в моем контексте, но я не понимаю.