DAO在不同的应用服务器上

时间:2013-03-19 06:51:09

标签: spring hibernate spring-mvc firewall

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

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

我怎样才能做到这一点?

现在我关注这种情况下的hibernate延迟初始化。 Hibernate延迟初始化会不会有任何问题?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

  • 为您创建DAO界面。
  • 实施具体实施。
  • 使用spring remoting导出界面。
  • 注入界面 - 从您的应用程序的角度来看,它只是实现界面的东西。它并不关心将呼叫发射到远程服务器。

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

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