java后端开发前,还是应该将各种层划分好,知道各自的作用,今天做一下总结。
Dao层、Entity层、Service层、Controller层、view层
1、Dao层(持久层、数据访问层)
功能:只负责与数据库的数据进行交互,dao层是在Mybatis框架下通过@MyBatisDao连接后台代码与数据库的。@Repository用于标注数据访问组件Dao层。
DAO层首先会创建DAO接口,然后会在配置文件中定义该接口的实现类,接着就可以在模块中就可以调用DAO 的接口进行数据业务的而处理。
Dao层用来访问数据库实现数据的持久化(把内存中的数据永久保存到硬盘中)。
个人理解:Dao层用于定义方法接口,然后在service层和serviceimpl层实现接口的方法,从而达到操作数据库的目的。对数据库进行数据持久化操作,方法语句主要是针对数据库的,主要实现一些增删改查操作,在Mybatis中的方法主要与xx.xml内相互一一映射。
UserDao.java内部代码:
可见,Dao文件里只是定义接口,并标注上注解@Repository
2、Controller层(控制层、action层)
功能:控制业务逻辑
Controller层负责具体的业务模块流程的控制,controller层主要调用Service层里面的接口控制具体的业务流程,控制的配置也需要在配置文件中进行。
Action是管理业务(Service)调度和管理跳转的。
Service是管理具体的功能的。
Action只负责管理,而Service负责实施。
3、Service层(业务层、biz)
功能:Service层用于实现操作的具体方法,包含了对页面操作模块的代码。
Service用于存放业务逻辑处理,不直接和数据库打交道,为controller层提供方法接口,Service层不仅有接口也有接口的实现方法,接口的实现方法在impl文件里。
4、Entity层(实体层、domain层)
功能:entity层用于定义实体,定义各个属性以及各个属性的getter()和setter()方法。
实体层,用于存放实体类,与数据库中的属性值基本保持一致,实现setter()和getter()方法。
5、view层
功能:此层与Controller层联系紧密,需要协同开发。view层主要负责前台jsp页面的表示 。
注:Dao层,Service层这两个层都可以单独开发,互相的耦合度很低,完全可以独立进行,这样的一种模式在开发大项目的过程中尤其有优势。
Controller,View层因为耦合度比较高,因而要结合在一起开发,但是也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。