Spring 更改 cglib

Spring change cglib

我在我的应用程序中使用 Spring,当我们有一些 class 没有实现任何接口时,Spring 将使用 "cglib" 进行代理。

我可以将 cglib 更改为 Spring 中的其他库吗?如果是,我该怎么做?

谢谢!

[编辑] 嗨,我想要的是因为当我使用 CGLIB 时 PermGen 有问题,当我进行热部署时代理实例没有清理。 是的,我可以改变其他策略,看点等...

Spring仅支持JDK(仅接口)基于CGLIB的(对于类) 代理,虽然没有明确提及,但它也使用 Objenesis 和 CGLIB 来代理 类 没有默认构造函数 。另请参阅 https://jira.spring.io/browse/SPR-8190 and https://jira.spring.io/browse/SPR-5654 中有关此问题的问题以供进一步参考。这意味着在 Spring 中 没有 drop-in 替换或配置选项 以切换到其他代理创建方法。

如果您仍然愿意探索未知领域,DefaultAopProxyFactory 可能是一个很好的起点,因为它似乎是 Spring 中代理创建代码的核心部分,代理创建者 类 通过他们的通用超类 ProxyCreatorSupport.

将其用作工厂