3

我一直在读到,当您要求将依赖项注入到 bean 中时,您会被注入到该资源实例的代理。我相信我知道代理是什么,它是一个知道如何将消息转发到另一个实例的实例。它还指出,正是这种模式允许容器为这个托管 bean 提供服务。

我不太明白这一点。为什么需要代理?这是如何实现的?每个bean都有一个代理对象吗?还是我有很多代理转发到一个实例?或者两者都不是?

此外,从 GoF 的书籍设计模式中,我读到您必须提供一个充当占位符的代理类。但是我在 Java EE 中从来没有这样做过,应用程序服务器会在运行时创建代理类吗?

4

1 回答 1

5

代理模式背后的基本假设是您不必从“用户”的角度关心它。代理伪装成声明的类型并且应该以相同的方式运行。附加值来自代理在转发或返回对目标实例的调用之前或之后所做的事情。这就是在容器中实现事务和安全的方式。

至于添加的问题:是的,应用程序服务器会在必要时创建那些代理类。

于 2011-03-03T18:30:35.597 回答