3
|
Aaron Digulla · 技术社区 · 10 年前 |
1
5
你有几个可能的解决方案
介绍接口在为类引入接口时,可以放弃CgLib的使用。然后,Spring将能够使用围绕接口工作的JDK动态代理。它围绕一个已经存在的bean实例创建一个代理,该代理实现了它所包装的类的所有接口。这样,类是否具有无参数构造函数就无关紧要了。 升级到Spring 4在Spring 4.0中添加了支持,以允许代理缺少无参数构造函数的类(请参见 SPR-10594 ). 要启用此升级,请使用Spring版本并添加 Objenesis 对于您的类路径,Spring4自带重新打包的cglib版本,因此不再需要它了。 需要注意的一点是,如果在构造函数中执行null检查或init逻辑,那么应该有一个没有逻辑的构造函数,在cglib创建实例的情况下,它可能会失败。我怀疑它会将null传递给所有构造函数参数(或原语的一些默认值)。
补充
|