在我的某些项目中,我遇到了问题。在某些类中,注释@Transactional
无效。重新启动后,模块注释便可以正常工作。我在调试中打开类,并看到该类中未使用CGLIB代理,并且如果我重新启动模块而未进行更改,则会使用该CGLIB代理!
最终问题出在因为@PostConstruct
中某个类中的项目具有自定义库时,项目使用beanDefinitionRegistry.registerBeanDefinition()
注册了我的bean的副本,并且在兼职类中重写了bean之后又没有代理。但我不明白为什么?为什么Spring在没有CGLIB代理的情况下创建/或替换/或使用bean?
我已根据自己的情况解决了该问题,但我不明白。