我正在开发一个基于Spring MVC和Hibernate的新应用程序来进行数据访问。 我希望数据访问层在单独的应用服务器上运行,最好是JBOSS。
我希望数据访问层在防火墙后面运行。
我怎样才能做到这一点?
现在我关注这种情况下的hibernate延迟初始化。 Hibernate延迟初始化会不会有任何问题?
答案 0 :(得分:1)
在UI中,使用REST
Web服务从应用程序服务器(托管DAO和Transactional服务)获取数据。使用 @Proxy(lazy=false)
注释实体类,以避免延迟加载实体。要使服务器验证客户端(Web应用程序查询防火墙后面的业务层),使用客户端身份证书,您可以使用Bouncy Castle CMS
API来验证身份,信任和消息完整性。如果您在网络中有SSL卸载程序,请在http(s)
标题中使用分离的签名。
答案 1 :(得分:1)
这种方法可能会有一些性能损失 - IO将成为瓶颈。但是,Spring Remoting可以让您轻松实现这一目标。
实现此目的的机制称为DynamicProxies - 一种Java SE功能。 DynamicProxies允许您提供一个类,该类在运行时响应接口上的方法调用。在这种情况下,方法调用将分派到远程服务器上的相应方法。
服务层和DAO层服务器都应位于同一域的防火墙后面。