mvc-service引入
什么是业务层
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的操作