1、Dao层(持久层、数据访问层)
2、Controller层(控制层、action层)
3、Service层(业务层、biz)
4、Entity层(实体层、domain层)
5、view层(负责前台jsp页面的表示)
6、config层(负责ssm的整体配置,主要包含spring,springmvc,mybatis的配置文件)
7、dto层(数据传输对象层)
工作流程:
用户发出请求到Controller
- Controller调用Service的业务方法
- Service调用Dao访问数据库,并返回数据
- Service返回数据到Controller
- Controller跳转到视图,并渲染数据
- 将视图响应给用户
DTO 与 Entity 差别和使用条件
entity:实体类,是用于说明某实体中所包含的所有属性,与数据库中的字段是保持一致的
DTO:数据传输对象,顾名思义,DTO是用于数据传输的,是根据实际的业务需求来决定这个对象具体包含哪些属性。是根据实际的业务需求来,将所要的数据返回给前端,以免造成不必要的资源浪费和数据暴露,造成不必要的安全问题。
举个例子
现有学生实体类(entity),属性包括:id、学号、姓名、班级、性别、院系、专业;
但是现在前端的业务只需要返回学生的 学号、姓名、班级、专业 ,这时如果使用entity返回对象数据则会造成不必要的数据泄露(id、性别等),所以,这里采用数据传输对象(DTO)会更好一些,这个DTO只需要包含需要的属性即可。