spring aop FastClassBySpringCGLIB 与 EnhancerBySpringCGLIB

spring aop FastClassBySpringCGLIB vs EnhancerBySpringCGLIB

我有一个异常堆栈跟踪,见下图,在堆栈跟踪中,有 $$FastClassBySpringCGLIB$$ 和 $$EnhancerBySpringCGLIB$$(浅红色下划线),它们是同一个 DAO class,我在 DAO 方法上有 @Transactional 和 @DataSource(用于切换数据源)。 FastEnhancer 有什么区别?为什么需要两者?

你的问题很技术性,如果我的回答也是这样,还请见谅,给你指点一个不错的unofficial CGLIB manual。在那里您可以找到关于 EnhancerFastClass 的各种详细信息。我不会在这里引用它们。

如果您不想阅读手册(我会理解),您只需要知道这些是 CGLIB 的内部工作原理或 Spring 如何选择使用它。