SpringMVC各層之間的區別及聯繫

項目分層

實體層:bean、pojo、model等命名方式

用途:和數據庫的實體保持一致,還可以存放由數據庫實體類而衍生的類,比如數據庫實體類User中有一個字段experience,它的類型是Experience類,則Experience類也可存放於model文件夾中。

 

數據傳輸層:dto層

用途:用來進行數據的傳輸,是面向界面UI來進行設計的,是根據UI的需求來進行定義的。如果實體層model中的字段可以滿足前臺界面的需求,則可以不定義dto層。

     通過DTO我們實現了表現層與Model之間的解耦,表現層不引用Model。如果開發過程中我們的模型改變了,而界面沒變,我們就只需要改Model而不需要去改表現層中的東西。

      需要了解的是,數據傳輸對象DTO本身並不是業務對象。數據傳輸對象是根據UI的需求進行設計的,而不是根據領域對象進行設計的。比如,Customer領域對象可能會包含一些諸如FirstName, LastName, Email, Address等信息。但如果UI上不打算顯示Address的信息,那麼CustomerDTO中也無需包含這個Address的數據。

 

數據訪問層:dao層,以及dao層的實現類

用途:DAO層主要是做數據持久層的工作,負責與數據庫進行聯絡的一些任務都封裝在此。DAO層的設計首先是設計DAO的接口,然後在Spring的配置文件(xxxMapper.xml)中定義此接口的實現類,然後就可在模塊中調用此接口來進行數據業務的處理,而不用關心此接口的具體實現類是哪個類,顯得結構非常清晰,DAO層的數據源配置,以及有關數據庫連接的參數都在Spring的配置文件中進行配置。

 

業務層:service層,以及service層的實現類

用途:Service層主要負責業務模塊的邏輯應用設計。同樣是首先設計接口,再設計其實現的類,接着再Spring的配置文件中配置其實現的關聯。這樣我們就可以在應用中調用Service接口來進行業務處理。Service層的業務實現,具體要調用到已定義的DAO層的接口,封裝Service層的業務邏輯有利於通用的業務邏輯的獨立性和重複利用性,程序顯得非常簡潔。

 

控制層:controller層,以及controller層的實現類

用途:

  • 負責頁面跳轉;
  • 無工作流的簡單請求處理器;
  • 用於處理完成XHTML表單生命週期的表單控制器;
  • 嚮導控制器,提供多頁面工作流;
  • WebWork風格的一次性控制器
  • 靈活的,多個動作的控制器

Controller故意設計成單例,像Servlet一樣。作爲單例,他們可以處理併發的請求,因此不需要在每個請求中維持狀態。

在spring配置文件applicationContext.xml就是spring容器。

<!--注入 dao -->
<bean id="userDaoImpl" class="com.hengdait.spring.dao.impl.UserDaoImpl" />

class裏面的類被ioc容器拿去創建對象,id是bean的識別節點
<!-- 注入service -->
<bean id="userServiceImpl" class="com.hengdait.spring.service.impl.UserServiceImpl">

<property name="userDao" ref="userDaoImpl"></property>
在service層裏面注入dao層,因爲在service層要用dao層的對象調用dao層的方法,創建的對象傳給userDao(userDao爲在serviceImpl裏面聲明的對象)
</bean>

有關內容摘自:

https://blog.csdn.net/wang_666_/article/details/79894614
https://blog.csdn.net/wang_666_/article/details/79894614 
https://blog.csdn.net/qq_26818085/article/details/54231742 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章