Java
Java Web项目,你们一般都是怎么设计代码分层的?
Web项目,你们一般都是怎么设计代码分层的?
谢邀!笔者是一名从业多年的Java Web开发工程师,所以对题主的问题,还是能够做一定可靠回答的。
说到分层,最为我们web开发人员所熟知的,那自然是MVC模式。MVC模式将我们的代码分为了Model,View,Controller这三层。下面针对三层做简单的讨论。
Model层该层在MVC模式中,主要负责与数据的直接对话。该层在Java Web项目中,通常会出于实际情况,又将其细分为了两层:Service层,DAO(在Spring Mybatis中,也可以说是Mapper)层。
Service层,主要用于编写业务逻辑。通常它在一个Java Web项目中的代码量是最多的。
DAO层,主要用于与数据库进行交互,根据业务操作相关数据。
Controller层该层在MVC模式中,主要负责控制业务逻辑,以及返回相关视图。在Java Web的项目中,这层有时候会直接也DAO层对话,这是错误的,这完全不符合该层的设计理念。这层只能与Service层对话,控制业务方向,而不是获取数据。
View层该层在MVC模式中,主要负责向客户端呈现数据。在传统的Java Web项目中,这一层,我们通常用jsp,template等这类模板引擎来处理。现在的话,由于前后端分离,所以这层基本上剥离出Java Web项目,而改为由前端处理这块数据的呈现了,后端则更多的用于返回json。
笔者是一名从业多年的Java Web开发工程师,如果有Java Web方面的问题,欢迎来询!!笔者也会分享一些有关Java Web开源框架方面的源码解读,如果您感兴趣,不妨点个关注,您的关注将是我更新的最大动力!!!
mvc模式是什么?
MVC(模型Model-视图View-控制器Controller)是一种设计模式,tM(Model)在Java Web里说的是JavaBean,在JavaBean中除了其属性和字段,还可以有行为及其事件,JavaBean可以理解为普通Java对象。Java普通对象,就是符合Java规范的所有对象,这和实体类完全是两回事。业务逻辑和数据访问应该放在Model层,也就是V负责展示数据,Controler除了转发不做业务逻辑。真正的逻辑事务,数据访问,甚至算法都放到Model去。 tController是控制器的意思,所谓控制器,就是将用户请求转发给模型层,经过处理后把结果返回到界面层展现的一个中间层,那么Controller到底管什么工作呢?先不说.先来看下在Java Web中这三个层一般的定义,一般在Java Web里,JSP充当V,Servlet充当C,JavaBean充当M,这里的Servlet管什么工作呢?接受输入,转到Model层去处理,处理结果保存后转发到JSP,然后展现数据。所以它的功能就是控制器的基本功能,它就管转发,在V和M之间转来转去。 MVC没有把业务的逻辑访问看成两个层,这是采用三层架构或MVC搭建程序最主要的区别。当然了。在三层中也提到了Model,但是三层架构中Model的概念与MVC中Model的概念是不一样的,“三层”中典型的Model层是已实体类构成的,而MVC里,则是由业务逻辑与访问数据组成的。