6

我正在开发一个基于 Spring MVC 和 Hibernate 的新应用程序来进行数据访问。我希望数据访问层在单独的应用程序服务器上运行,最好是 JBOSS。

我希望数据访问层在防火墙后面运行。

我怎样才能做到这一点?

现在我担心在这种情况下休眠延迟初始化。Hibernate 延迟初始化真的会有问题吗?

4

2 回答 2

1

在 UI 中,使用RESTWeb 服务从应用程序服务器(托管 DAO 和事务服务)获取数据。用注释实体类@Proxy(lazy=false)以避免实体的延迟加载。对于服务器验证客户端(Web 应用程序查询防火墙后面的业务层),使用客户端身份证书,您可以使用Bouncy Castle CMSAPI 来验证身份、信任和消息完整性。如果您在网络中有 SSL 卸载程序,请在http(s)标头中使用分离的签名。

于 2013-03-19T07:21:08.660 回答
1

这种方法可能会有一些性能损失 - IO 将成为瓶颈。但是,Spring Remoting 允许您轻松实现这一点。

  • 为你的 DAO 创建一个接口。
  • 落实具体落实。
  • 使用spring remoting导出接口。
  • 注入接口 - 从您的应用程序的角度来看,它只是实现接口的东西。它不关心调用是否被发送到远程服务器。

实现这一点的机制称为 DynamicProxies - Java SE 功能。DynamicProxies 允许您提供一个类,该类在运行时响应接口上的方法调用。在这种情况下,方法调用被分派到远程服务器上的相应方法。

服务层和 DAO 层服务器都应该位于同一域的防火墙后面。

于 2013-03-24T09:46:58.973 回答