gpt4 book ai didi

java - CGLib 和序列化

转载 作者:行者123 更新时间:2023-11-29 09:23:45 26 4
gpt4 key购买 nike

我想做的是序列化一个类实现一个命令模式,以便我稍后可以运行它。在最好的在所有世界中,我想序列化一个匿名类(我是意识到这个问题)

让事情变得有点复杂的是我在 Spring 的环境中并且我希望序列化的匿名类定义在一个将由 CGLib 代理。

我的初步尝试:

public interface CallLater implements Serializeable {
public run();
}


@Service
public class TestService implements Serializeable {

public doSomethingMore() { /* Code */ }

public void doSomething() {

CallLater job = new CallLater() {
private static final long serialVersionUID = 4415017504667122645L;

@Override
public void run() {
doSomethingMore();

}
}

storeJob(job);
}
}

例如,storeJob 将序列化对象并将其存储以备后用,它是这部分失败了。我没有包括这个代码,但只是ObjectOutputStream 调用

我知道整个 TestService 类都需要序列化。问题是它被包装了一个 CGLib 代理,这个代理没有实现可序列化(我的猜测是这个不能连载)。

非常感谢任何帮助。

最佳答案

您应该只序列化“目标”。所以你有代理权的引用吗?将获取该代理的目标,以便您可以对其进行序列化。

要做的事情是在序列化之前中断应用程序,并在该上下文中挖掘您需要的属性。或者可能有一些代理实用程序或其他东西。

关于java - CGLib 和序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4451695/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com