我一直在研究Spring MVC 4我明白Spring有幾個註釋可以更快地開發。 This question and answer很好地解釋了@Component,@Service,@Repository和@Controller之間的關係。我的問題是:從另一個項目調用spring @service
能否在@Service類可以從另一臺機器被稱爲一個共同的WSDL服務?例如,從作爲服務客戶端的獨立應用程序。
或者是@service註釋只是爲了標記類的用法嗎?
感謝
我一直在研究Spring MVC 4我明白Spring有幾個註釋可以更快地開發。 This question and answer很好地解釋了@Component,@Service,@Repository和@Controller之間的關係。我的問題是:從另一個項目調用spring @service
能否在@Service類可以從另一臺機器被稱爲一個共同的WSDL服務?例如,從作爲服務客戶端的獨立應用程序。
或者是@service註釋只是爲了標記類的用法嗎?
感謝
註釋@Service只是@Component註解的特殊版本,其目的不是提供給執行遠程訪問。
正如文檔中所述,@Service註釋有助於在類路徑掃描期間自動檢測類(請參閱JavaDoc)並由某些工具處理。 另請參閱Spring's forum的說明。
我不認爲這可以通過使用被稱爲@Service你需要用註釋@WebService類將其暴露在外界
不要混淆的javax @WebService
同春@Service
其定義here 。儘管兩者都被稱爲服務。 @Service
的目的只是:
該註釋作爲@Component的特化,從而允許實現類通過類路徑掃描被自動檢測。
那麼,既然@WebService
是的WSDL(外部訪問),一個@Service
是Spring的內部使用。 如果您想從其他機器訪問「服務」,則必須編寫@WebService
或使用@RequestMapping
和SpringMVC
。
用@Service註解的類中的方法不能從外部調用,但通常的做法是在圖層頂部添加另一個通常稱爲facade的圖層,其中您的類使用@Service註釋(通常稱爲服務層)。使用這個外觀,你可以用不同的方式暴露你的服務,如REST,SOAP等。
現在很明顯,我需要一個額外的圖層來分隔功能。謝謝 – Jessai 2014-08-29 14:18:20
我可以同時使用@service和@webservice這兩個註釋嗎? – Jessai 2014-08-28 22:03:00
我不確定,但我會建議您使用@Service註釋來註釋服務實現,並將其注入端點實現(請查看http://docs.spring.io/spring/docs/current/spring-framework-參考/ HTML/remoting.html)。通過這種方式,您可以使用不同的遠程技術公開您的服務實現。 – 2014-08-29 06:02:00