2014-08-28 39 views
2

我一直在研究Spring MVC 4我明白Spring有幾個註釋可以更快地開發。 This question and answer很好地解釋了@Component,@Service,@Repository和@Controller之間的關係。我的問題是:從另一個項目調用spring @service

  1. 能否在@Service類可以從另一臺機器被稱爲一個共同的WSDL服務?例如,從作爲服務客戶端的獨立應用程序。

  2. 或者是@service註釋只是爲了標記類的用法嗎?

感謝

回答

2

註釋@Service只是@Component註解的特殊版本,其目的不是提供給執行遠程訪問。

正如文檔中所述,@Service註釋有助於在類路徑掃描期間自動檢測類(請參閱JavaDoc)並由某些工具處理。 另請參閱Spring's forum的說明。

+0

我可以同時使用@service和@webservice這兩個註釋嗎? – Jessai 2014-08-28 22:03:00

+0

我不確定,但我會建議您使用@Service註釋來註釋服務實現,並將其注入端點實現(請查看http://docs.spring.io/spring/docs/current/spring-framework-參考/ HTML/remoting.html)。通過這種方式,您可以使用不同的遠程技術公開您的服務實現。 – 2014-08-29 06:02:00

1

我不認爲這可以通過使用被稱爲@Service你需要用註釋@WebService類將其暴露在外界

1

不要混淆的javax @WebService同春@Service其定義here 。儘管兩者都被稱爲服務@Service的目的只是:

該註釋作爲@Component的特化,從而允許實現類通過類路徑掃描被自動檢測。

那麼,既然@WebService的WSDL(外部訪問),一個@Service是Spring的內部使用。 如果您想從其他機器訪問「服務」,則必須編寫@WebService或使用@RequestMappingSpringMVC

3

用@Service註解的類中的方法不能從外部調用,但通常的做法是在圖層頂部添加另一個通常稱爲facade的圖層,其中您的類使用@Service註釋(通常稱爲服務層)。使用這個外觀,你可以用不同的方式暴露你的服務,如REST,SOAP等。

+0

現在很明顯,我需要一個額外的圖層來分隔功能。謝謝 – Jessai 2014-08-29 14:18:20

相關問題