我一直在給一個應用程序來處理,它使用後端的Java EE應用程序,前端的Flash和BlazeDS來連接這兩個應用程序。我從來沒有使用Flash或BlazeDS,並且試圖讓我的頭腦知道BlazeDS是如何工作的。BlazeDS如何生成文件
到目前爲止,我瞭解到,當您在FlashBuilder中連接到BlazeDS時,將掃描remoting-config.xml
文件以確定Java端存在哪些服務。 FlashBuilder詢問您想要導入哪些服務以及要使用的「服務包」和「數據類型包」。
當您選擇您的Java ExampleService
時,BlazeDS將創建_Super_ExampleService.as
和ExampleService.as
並將它們放在您的「服務包」位置。 ExampleService.as
爲空,但擴展爲_Super_ExampleService.as
(它基本上是一個Flash服務,可用於調用Java服務中的方法)。如果您需要添加額外的方法,您可以將它們添加到ExampleService.as
。 (希望這是完全正確的,請糾正我,如果我錯了)
我的問題是我無法弄清楚什麼BlazeDS的價值對象。
當您在FlashBuilder中選擇ExampleService
(假設它是Example
實體的服務)時,BlazeDS會創建什麼值對象?我期望Example.as
和_SuperExample.as
。但是,也出現_ExampleEntityMetadata.as
。
我的問題基本上都是:
- 如何BlazeDS的確定要創建的值對象?它是否掃描數據庫,掃描項目的@Entity註釋,掃描一些配置文件,掃描服務以確定它使用什麼對象,等等?
- 這三個類的每一個都有什麼用途?它看起來像服務相同的設置(如果需要更改非 - 「超級」一個),但現在有第三個文件。
- 我注意到值對象並不總是直接對應於Java實體(具有附加屬性,缺少屬性等)。爲什麼是這樣?
- 如何將價值對象與服務結合使用?
我也有一些普遍問題:
- 當您連接到FlashBuilder服務,你實際上在做什麼?我第一次想象BlazeDS提供了必要的服務和價值對象。但是如果他們已經在那裏(說你已經連接,或者你拉下了代碼並且第一次連接)呢?連接是否僅在FlashBuilder副本中提供服務?
- 是否保證BlazeDS將始終以同樣的方式生成服務和值對象?像線一樣?
本視頻的開頭介紹瞭如何生成服務和值對象:http://tv.adobe.com/watch/flex-in-a-week-day-2/generating-value-objects - 使用閃光建設者數據服務/ – 2012-02-13 18:44:15