Java Web-常用知識點
Java Web-mvc
Java Web-Servlet
表述層:負責處理瀏覽器請求、返回響應、頁面調度
業務邏輯層:負責處理業務邏輯,根據業務邏輯把持久化層從數據庫查詢出來的數據進行運算、組裝,封裝好後返回給表述層,也可以根據業務功能的需要調用持久化層把數據保存到數據庫、修改數據庫中的數據、刪除數據庫中的數據
持久化層:根據上一層的調用對數據庫中的數據執行增刪改查的操作
如果不做三層構造:
所有和當前業務功能需求相關的代碼全部耦合在一起,如果其中有任何一個部分出現了問題,牽一發而動全身,導致其他無關代碼也要進行相應的修改。這樣的話代碼會非常難以維護。
所以為了提高開發效率,需要對代碼進行模塊化的拆分。整個項目模塊化、組件化程度越高,越容易管理和維護,出現問題更容易排查。
模型對整個項目中三層架構的每一層都提供支持,具體體現是使用模型對象封裝業務功能數據。
Java實體類有很多不同名稱:
POJO:Plain old Java Object,傳統的普通的Java對象
entity:實體類
bean或Java bean
domain:領域模型
必須有一個無參構造器
將來使用框架後,大量的對象都是框架通過反射來創建的。
Class<T> clazz = Class.forName("全類名");
clazz.newInstance();
通過getXxx()、setXxx()方法定義屬性:getXxx()或setXxx()方法去掉get或set後,Xxx把首字母小寫,得到的xxx就是屬性名。
這裡選擇創建interface而不是class,是因為想保持彈性,讓之後如果有類似需求的DAO創建時,可以直接實現此interface後重寫
為了完成具體對數據庫的操作,另外編寫一個實現DAO的impl
這裡同樣是使用interface,方便之後的實現擴寫
可以注意到的是,Service與Dao的不同之處
Dao是對 數據庫 進行操作,Service則是針對 實體類 進行操作
具體實現功能的impl
這裡可以留意到第三行、第四行,為何使用的是interface的UserBasicService,而不是clss?
答:因為在xml文件中,重新配置關鍵字與路徑的關係,因此雖然看起來是使用UserBasicService,實際上是UserBasicServiceImpl