我正在開發基於Spring MVC和Hibernate的新應用程序來進行數據訪問。 我希望數據訪問層在單獨的應用程序服務器上運行,最好是JBOSS。DAO在不同的應用程序服務器上
我希望數據訪問層在防火牆後面運行。
我該如何做到這一點?
現在我擔心在這種情況下休眠惰性初始化。 Hibernate的懶惰初始化會有什麼問題嗎?
我正在開發基於Spring MVC和Hibernate的新應用程序來進行數據訪問。 我希望數據訪問層在單獨的應用程序服務器上運行,最好是JBOSS。DAO在不同的應用程序服務器上
我希望數據訪問層在防火牆後面運行。
我該如何做到這一點?
現在我擔心在這種情況下休眠惰性初始化。 Hibernate的懶惰初始化會有什麼問題嗎?
這種方法可能會有一些性能損失 - IO將成爲瓶頸。不過,Spring Remoting可以讓你輕鬆實現這一點。
實現此功能的機制被稱爲DynamicProxies - Java SE功能。 DynamicProxies允許您在運行時提供一個響應接口上方法調用的類。在這種情況下,方法調用被分派到遠程服務器上的相應方法。
服務層和DAO層服務器都應位於同一個域上的防火牆後面。
在UI中,使用REST
Web服務從應用程序服務器(託管DAO和事務服務)獲取數據。用@Proxy(lazy=false)
註釋實體類,以避免延遲加載實體。要讓服務器驗證客戶端(Web應用程序查詢防火牆後面的業務層),請使用客戶端身份證書,您可以使用Bouncy Castle CMS
API驗證身份,信任和消息完整性。如果網絡中有SSL卸載程序,請使用http(s)
標題中的分離簽名。