什么是業務層
? ? 1)Model1(JSP)和Model2(模糊的mvc):
? ? MVC:Model(模型),View(視圖),Controller(控制器)
? ? 視圖層:用于數據展示以及用戶交互的界面
? ? 控制層:能夠接受客戶端的請求,具體業務功能需要借助模型組件來完成
? ? 模型層:模型分為很多種:有比較簡單的pojo/vo(value object),業務模型組件,有數據訪問層組件
? ? ? ? 1)pojo/vo:值對象
? ? ? ? 2)Dao:數據訪問對象
? ? ? ? 3)BO:業務對象(就是DAO方法的組合外加一些邏輯判斷)
? ? 區分業務的對象和數據訪問對象
? ? ? ? 1)Dao中方法都是單精度方法或者稱之為細粒度方法,什么叫單精度?一個方法值考慮一個操作,比如添加就是insert操作
? ? ? ? 2)BO中的方法屬于業務方法,也實際的業務是比較復雜的,因此業務方法的粒度是比較粗的。
? ? ? ? ? ? 比如注冊功能:內部包含了多個Dao方法,注冊這個功能需要多個Dao方法的組合調用,從而完成功能
? ? ? ? ? ? ? ? 1、檢查用戶名是否已經被注冊--Dao中的select操作
? ? ? ? ? ? ? ? 2、像用戶表添加一條記錄--Dao中的insert操作
? ? ? ? ? ? ? ? 3、像用戶積分表添加一條新記錄,用戶默認初始化積分為100--Dao中的insert操作
? ? ? ? ? ? ? ? 4、像系統消息表新增一條新記錄,新用戶注冊,根據新用戶通訊錄向他的聯系人推送消息--Dao中的insert操作
? ? ? ? ? ? ? ? 5、向系統日志表新增一條記錄.....
? ? ? ? ? ? ? ? 6、。。。
????????3) 在系統中添加業務層組件
1.以前Controller是直接調用Dao層的組件
2.現在在Dao上面多了一層FruitService(impl....)
我們一個請求過來先會調用Controller層,然后依次往下
調用,最后返回給Controller,然后Controller層再把
數據響應給DispatcherServlet,在DispatcherServlet中
我們會有視圖處理(tmleaf、重定向等怎么做),然后
DispatcherServlet再交給我們的客戶端;其中
DispatcherServlet會通過反射去定位到Controller,然后
執行相應的方法
所以后續把對Dao的操作修改成對Service的操作