2016-02-23 77 views
3

庫罐子我創建具有REST Web服務和JPA依賴彈簧啓動應用程序。該應用程序作爲獨立應用程序自行運行。我試圖使用vaadin作爲一個單獨的項目添加UI層,該項目使用sring引導項目的服務。是否有一種簡單的方法可以將彈簧啓動應用程序作爲可以包含在其他項目中的庫jar進行製作。創建使用Spring啓動

我搜索了論壇,並發現勸不使用彈簧啓動,而是使用Spring Framework創建庫某些線程。只是想檢查是否有任何示例可以在Spring引導中完成這些操作。

+0

這取決於您打算如何打包和部署它們,以及如何使用Vaadin UI中的庫,普通的舊Java方法調用或REST調用。我猜他們建議只使用Spring,因爲使用Boot時,生成的工件將包含所有的依賴關係。無論哪種方式,我認爲最簡單的方法是使用maven,gradle或任何其他這樣的構建系統,它允許您以多種方式打包工件,並支持分佈式和版本化的依賴關係。例如:maven項目有2個模塊,1個用於圖書館,1個用於引用圖書館的用戶界面。 – Morfic

回答

0

就像Morphic說的那樣,您需要決定是否打算使用Java本地調用庫方法,或者是否要設置Web服務。這聽起來像你正在構建一個REST API,在這種情況下,我不會打擾將它作爲一個庫。我只想運行春季啓動應用程序(Java的罐子myservice.jar,或MVN春:開機運行),然後只用在任何端口春季啓動打開爲您服務HTTP REST連接到它。

如果你決定要加載的春天啓動的應用程序作爲一個庫JAR,那麼你可能不需要春天開機可言。所有你需要的是你的服務方法和Spring配置打包成一個jar,mvn安裝到你的本地倉庫,然後在vaadin項目的pom文件中引用你的jar(假設你將它創建爲maven項目)。

0

如果你的目的是讓Vaadin打電話你會從瀏覽器中創建的REST API(如通常與像AngularJS客戶端框架的情況下),那麼你誤會Vaadin。 Vaadin應用程序運行在服務器端。

所以你可以做的是運行兩個服務器,一個運行Vaadin應用程序,並調用第二個運行您的REST API的服務器。但是,如果沒有必要對這種分裂,您可以使用形成REST API直接從Vaadin應用程序代碼中調用一個普通的Java API的類。

1

我的This project可能是一些你感興趣的。我已經使用Spring-Boot來製作一個庫,用於其他項目。

這裏要注意的主要的事情就是:

@SpringBootApplication(scanBasePackages = {"me.ramswaroop.jbot", "example.jbot"}) 
在主類

你開始春天啓動的應用程序。請參閱此main class以瞭解更多信息。但說實話,根據我的說法,使用Spring-Boot將圖書館納入其他項目並不是一個好的選擇。如果我要重寫JBot,那麼我肯定不會以這種方式使用Spring-Boot。

彈簧引導真的好創建一個獨立的應用程序,你可以「只運行」,而是要創建一個庫,嗯,不是我喜歡的選擇。