2016-03-15 74 views
2

彈簧啓動執行器提供了一些端點,如健康狀況,指標,信息。它還使我們能夠編寫我們自己的自定義端點。彈簧控制器和端點之間的區別

我有一個需求,我需要公開一些Dropwizard指標統計作爲一個端點。最新的春季啓動支持dropwizard指標,但它不符合我的要求,所以我打算有我自己的網絡端點/stats

但現在我無法決定它應該是一個正常的Controller或自定義執行器Endpoint。這兩個術語有什麼區別? PS:問題似乎有意見基礎,但答案應該足夠簡單。

+0

按照我的理解(不知道,所以只有一個評論),一個'Endpoint'是入口點的有點「開箱即用的監測框架」春天開機,包含類似'類HealthIndicator'等等,而「原樣」不是控制器。由於通過http提供json格式數據的概念非常接近'@(Rest)Controller'提供的概念,因此可以通過將「Endpoint」設置爲「MvcEndpoint」來添加一些控制器功能(!)。 [here](http://blog.codeleak.pl/2014/10/spring-boot-actuator-custom-endpoint.html),你可以找到更多我認爲的見解,以及文檔。希望這可以幫助? – Dominik

回答

5

端點是Controller的更具體或特有的版本。

而不是依賴視圖(如JSP)在HTML中呈現模型數據,端點只是將要寫入的數據直接返回到響應正文(類似於在Controller中執行@ResponseBody)。

器端點是因爲以下幾個原因是更好的選擇:

  1. 端點是爲了執行對HTTP打印您的對象(JSON)的高度特異性的任務,正是你想做的事這裏。
  2. 將monitor-n-manage代碼與應用程序專用代碼分開。
  3. 爲了保持清潔和凝聚力