您的理解大致正確。如果我略有不同,請將Model
,View
和Controller
作爲應用程序的單獨圖層(因爲您有對View layer
的引用)。 MVC是實現用戶界面的模式,通常應用程序中的用戶界面是Presentation layer
的一部分。除了MVC之外,還有其他用於實現表示層的模式,例如MVVM,MVP,PAC等。
Spring MVC建立在Spring框架之上。如果您熟悉Spring框架,您會知道它是Java的許多可用Dependency Injection框架之一。 Spring MVC控制器是普通的Spring管理的bean,可以被Spring DI容器發現,並且可以注入其他Spring bean。
在Spring MVC應用程序模型的對象可以是任何Java類的實例,無論是在內置數據類型,如String
,Long
,BigInteger
等,或用戶定義的類和枚舉。
視圖可以再次成爲最終用戶的任何有意義的東西 - HTML頁面,XML文檔,JSON文檔,PDF文檔,Excel電子表格等等。 Spring MVC不提供任何視圖生成機制。不過,它提供了對幾種現有視圖生成技術的集成,如常規JSP,JSTL,Freemarker,Java,Thymeleaf和StringTemplate等模板引擎,Jasper Reports等報告框架,JAXB和Castor等XML綁定框架,JSON如傑克遜和GSON等有約束力的框架,等等。 Spring MVC API相當容易與視圖生成技術集成,因此該框架可以相對容易地適應新技術。
由於Spring MVC是一個表示層框架,它沒有指定,推薦或強制執行業務邏輯。但是,將業務邏輯放在表示層之外通常是一個好主意(有關詳細信息,請參見SOLID principle)。例如,如果您希望爲某些用戶或業務合作伙伴提供對您的業務邏輯的編程訪問權限,則最好將業務邏輯放在Web表示層將調用的獨立層中。然後可以創建一個薄層還調用相同的業務邏輯層和允許使用數據交換機制的外部用戶,例如SOAP,REST,EDI等的編程訪問
偉大,簡潔的答案。在解釋它的方式上有很多意義。 – M7Jacks 2014-09-02 21:02:40