恐怕我不能在Scala前端提供任何東西,但就Java而言,您應該將新服務視爲您的應用程序的服務層,而REST/SOAP /無論您的服務的接口在Web/Servlet層中定義。
所以,讓我們說你有一個像你com.myco.services包的以下服務:
public interface PersonService {
public Person createPerson(PersonIdentifier id, PersonType type);
public Person retrievePerson(PersonIdentifier id);
public void updatePerson(Person existingPerson);
public void deletePerson(Person existingPerson);
public boolean authenticatePerson(String personName, String password);
}
我們將會把它作爲閱讀你有一個PersonServiceImpl實現這一點,更新數據庫管他呢。在您的應用程序中,您可以在同一個JVM中將PersonServiceImpl注入代碼並直接調用方法,而無需編組或解組參數。
在Web層中,您可以有一個單獨的PersonServiceController映射到您的servlet中的URL。當像「http://myco.com/person/update」這樣的URL被擊中時,請求的主體可以這樣傳遞給控制器:
public class PersonServiceController {
private final PersonService personService; // Inject PersonServiceImpl in constructor
...
public void updatePerson(String requestBody) {
Person updatedPerson = unmarshalPerson(requestBody);
this.personService.updatePerson(updatedPerson);
}
...
}
這聽起來不錯,現在什麼是最好的優雅的條款在建立?我每次構建客戶端時是否都需要構建服務器(這是否稱爲多模塊構建?)或者我只是將它打包並添加爲客戶端應用程序的依賴項?謝謝。 – parsa 2011-05-18 07:16:03
每個模塊都將生成自己的工件 - jar文件,或者可能是Web服務模塊的war文件或ear文件。第二個和第三個模塊將依賴於第一個模塊,即將第一個jar包含在它們的編譯時和運行時類路徑中。像Maven這樣的構建工具將爲開發多模塊項目提供支持。 – 2011-06-22 11:40:22