2016-08-05 158 views
-1

這個問題更多的是關於設計而不是技術問題。 我正在開發一個使用javaSpring Rest Services的後端應用程序。 這是一個小應用程序,所以在開始時我爲所有端點(5或6個端點)創建了一個控制器。例如,我有一個終端請求令牌,即/token,另一個終端根據先前收到的令牌(/readresource)提出請求。寧靜的API,良好的做法

所以現在我想知道如果我應該將控制器分成兩個或更多控制器,每個控制器都與端點之間相互關聯。

當然,就代碼的可讀性而言,這是有用的,但從技術角度來看,如果spring bean的默認範圍是SINGLETON,如果我只有一個控制器,那隻會產生一個所以我們假設我們有兩個同時到達服務器的請求,即使每個請求都運行一個完全獨立的線程,並且他們請求不同的端點,最終他們正在訪問所以,一個請求應該等待其他的完成,我們不能同時在同一個實例的兩個不同線程上執行,對嗎?

因此......就性能或良好實踐而言,避免擁有許多終端的大型控制器擁有更多的小型控制器會更好嗎?

您對此有何看法?

謝謝!

+0

不是性能問題。 – Kayaman

回答

2

我們不能在同一個實例上同時執行兩個不同的線程,對嗎?

錯誤。只有當被調用的方法具有​​訪問修飾符時,情況纔是如此。否則,併發調用可能發生在不同線程中的同一實例上。

擁有多個控制器對應用程序的性能沒有明顯的影響。這意味着一個額外的bean被加載到內存中,這相當於佔用了一些額外的KB內存。

這個代價遠遠超過了易於閱讀和理解的代碼。請記住,你不應該爲自己編寫代碼。你應該把它寫在未來的傢伙,還是那樣,男人比我曾經說過要聰明得多..

寫您的代碼,如果旁邊的人讀它是一個憤怒的精神病患者,他知道你住在哪裏。

+0

感謝您的澄清! – fgonzalez

0

再加上@christopher正確提到的,擁有多個控制者或多或少的問題,更多的是關注問題而不是性能問題。

這更像是一個設計決定。假設您正在爲電子商務網站構建後端,爲產品,客戶和付款分配控制器可能更有意義。如果你正在設計的後端是一個小型的只讀新聞網站,那麼只有一個控制器會更好。