簡體   English   中英

如何將Spring Roo和GWT結合在一起

[英]How to bring Spring Roo & GWT together

我正在嘗試使用Roo中最新的GWT集成開發Spring Roo / GWT應用程序。

讓腳手架工作是非常簡單的,但我真的不明白RPC如何在那里工作。

有人可以提供一個簡單的例子,說明如何在Spring Roo和GWT中連接客戶端/服務器。

一開始會非常有幫助,因為我找不到任何資源。

thx&respect,Flo

弗洛,

不確定你是否依賴谷歌浪潮,但這似乎是一個保持當前努力的地方。 具體來說,這個浪潮可供公眾使用: RequestFactory Wave

它涵蓋了有關RequestFactory API的詳細信息(很多新出現的細節)。

基本思想是在服務器端和客戶端需要您的域模型對象。 使用hibernate可能會導致類文件出現問題,並且人們已經擁有兩組模型對象,並使用自定義GWT-RPC在客戶端和服務器端模型對象之間發出服務器請求和編組/取消編組。 不是理想的解決方案。 即使您可以使用相同的模型對象,RPC的開銷也是一種阻力。

輸入RequestFactory,我們看到谷歌工程師可能會獲得他們的價值。 看一下從.roo生成的示例代碼 - 特別是ApplicationRequestFactory.java。

package com.springsource.extrack.gwt.request;

import com.google.gwt.requestfactory.shared.RequestFactory;

public interface ApplicationRequestFactory extends RequestFactory {
    ReportRequest reportRequest();
    ExpenseRequest expenseRequest();
    EmployeeRequest employeeRequest();
}

這是一個為每個域對象提供請求方法的接口。 項目中沒有定義此類的實現。 它在EntryPoint中實例化,調用GWT.create(...):

final ApplicationRequestFactory requestFactory = 
    GWT.create(ApplicationRequestFactory.class);
requestFactory.init(eventBus);

com.springsource.extrack.gwt.request包中,您將看到一個ApplicationEntityTypesProcessor.java,它巧妙地使用泛型來打包對域類的引用,以便稍后在演示文稿中使用。 該軟件包的其余部分是每個模型對象的事件和處理程序。

具體來說,每個對象有四個自動生成的類:

  • EmployeeRecord.java - 這是域對象的DTO。
  • EmployeeRecordChanged.java - 這是一個RecordChanged事件,用於提供onEmployeeChanged的鈎子方法。
  • EmployeeChangedHandler.java - 這是在需要onEmployeeChanged的特定行為時實現的接口。
  • EmployeeRequest.java - 這是ApplicationRequestFactory用於打包給定對象的各種訪問方法的接口。

請記住,幕后生成了大量代碼來支持所有這些。 從M1到M2,很多東西都被清除了GWT項目中可見的東西。 我希望會有更多變化,但不會像M1到M2那樣劇烈。

因此,最終這些事件可以在UI包中使用,以將域和UI聯系在一起。 ReportListActivity.java:

public void start(Display display) {
    this.registration = eventBus.addHandler(ReportRecordChanged.TYPE, new ReportChangedHandler() {
        public void onReportChanged(ReportRecordChanged event) {
            update(event.getWriteOperation(), event.getRecord());
        }
    });
    super.start(display);
}

我再次向您推薦wave以獲取更多信息。 另外,expenses.roo演示了如何使用Places並且還有一個相當靈活的Activity框架。 快樂的GWTing。

問候。

您所指的功能目前正處於重大發展階段(或者谷歌的那些人希望我們相信;))因此API和內部工作不是最終的,並且很可能在GWT 2.1的最終版本發布之前仍然有所改變(這是在Google IO 2010期間的GWT會議期間舉行了幾次演講 但是,您可以在主干中瀏覽Bikeshed示例以查看有效的(希望如果))示例。 還有2.1分支似乎包含最新的(?)樣本(以及在Google IO上承諾的食譜)。
就個人而言,我等待將你的代碼轉換到新的RPC模型,直到工作GWT的人說這樣做是安全的;)(但是現在習慣於一般的想法肯定是一個好主意 - 它不像他們會改變一切 :D)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM