2013-11-02 24 views
7

当spring创建代理时,它使用cglib和默认命名策略。有没有办法改变命名策略?生成的类名与我使用的另一个框架冲突。春天,如何更改cglib命名策略

+0

这怎么可能?你有其他使用CGLib来增强相同类的框架吗?听起来很奇怪的设置。 –

+0

这并不奇怪。当Spring为我的会话作用域bean创建代理时,我会执行集成测试。我也有单元测试,我检查同一个对象的业务功能 – piotrek

+0

你会得到什么样的错误?似乎CGLib应该能够处理这个问题。 http://cglib.cvs.sourceforge.net/viewvc/cglib/cglib/src/proxy/net/sf/cglib/core/DefaultNamingPolicy.java?view=markup –

回答

2

它似乎cglib claims它可以检测名称冲突,但由于某种原因,它不在这种情况下。

由于这个问题(和你的报告?)你正在使用的其他框架(捕获异常)patched他们的代码来避免它。

+1

只要使用* 1 * cglib,就可以检测名称冲突。自从Spring 3.2+重新包装cglib之后,很容易就会有*两个* cglibs,每个都处理自己的名称冲突。 –