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