如果你不想爲grails啓動一個單獨的項目,而是將它潛入現有的webapp中,該怎麼辦?將grails集成到現有的spring應用程序中?
我必須爲某些新實體構建管理界面/ crud,並認爲這將是一種學習grails的完美方式。
如果你不想爲grails啓動一個單獨的項目,而是將它潛入現有的webapp中,該怎麼辦?將grails集成到現有的spring應用程序中?
我必須爲某些新實體構建管理界面/ crud,並認爲這將是一種學習grails的完美方式。
我正在嘗試使用Grails應用程序和Spring應用程序創建一個應用程序。
我試着將Grails應用程序潛入Spring之中,但這是「不可能的」。將Spring應用程序潛入Grails應用程序更容易。 Grails知道Spring是什麼,但Spring不知道Grails是什麼。
在this文章中,您可以找到有關如何在Grails中使用hibernate映射文件或註釋的有用信息,因此您無需重新映射所有內容。你也可以使用你所有的java clases(把它們放到src/java中)。您可以將ApplicationContext.xml中定義的bean放置在conf/spring/resources.xml中。您可以將它們保留在ApplicationContext中,但我遇到了一些問題。 我沒有結束工作(幾乎),它看起來不錯。
很難「偷偷摸摸」,除非現有的應用程序具有正確的dir結構,它完全映射到grails如何喜歡它 - 畢竟,配置約定是grails的威力來自何處。
您可以嘗試將管理界面作爲原始/現有彈簧應用的「獨立」應用,並將現有數據庫映射到grails域對象。雖然我不知道如何在沒有關於現有應用程序的更多信息的情況下輕鬆並排運行它們。儘管如此,這是可能的。
我同意構建管理界面是學習Grails的一個很好的練習,並且也同意以前的答案,如果不是不可能與現有的Spring應用程序集成,那麼Grails很難。你也許可以完成它,但頭痛並不值得。
Grails建立在Hibernate的ORM之上,所以如果你已經在這個Spring應用程序中使用了Hibernate,那麼你可以使用它來獲得你的優勢。配置Grails應用程序以使用預先存在的Hibernate模型並不難,這在Grails文檔中有很好的解釋。
因此,我建議將您的管理控制檯作爲獨立的Grails應用程序來構建,但要使用已有的Hibernate模型,如果實際上您已經使用了Hibernate。
將管理員置於單獨應用程序中的一個問題是主應用程序中的無效L2緩存。對此的解決方案可能是在管理應用程序中創建一些機制,以在主應用程序上調用某些緩存失效服務或共享分佈式緩存。我希望有一個更簡單的解決方案,以便應用程序的grails部分和spring部分可以共享緩存和狀態。 – 2009-05-19 13:50:35