1.dao层操做单表,不涉及复杂逻辑,主要是表的增删改查操做,彻底根据domain的要求来查询数据,会对每一个要操做的数据库表定义一个dao,对具体的操做要定义一个相似函数说明。数据库
eg: UppCodeInfo findByCodeNo(String codeNo);JPA方式dom
2.domain层考虑业务逻辑,例如过滤条件,放行或者返回,以及数据的处理,为调用dao层作好准备,一个domain能够调用一个或者一组相关的dao层.函数
eg:@Entity
@Table(name = "upp_code_info")
public class UppCodeInfo {属性....对应数据库表中的字段,要在后面生成set(),get()方法}spa
3.service层调用一个或者一组domain层,主要是展示须要开放出去的接口,其中domain层不是全部的接口都要再service层 体现的,可能仅在service层开放几个接口出去,此外,主要接口须要对接受的参数要尽可能的扩大化,也就是说能够容纳各类类型的参数的接入 (Object),而后须要在service层作好转换,以备domain层使用。具体的逻辑实如今此层实现。即函数在该层实现。code
4.controller层,做用在于过滤参数、和部分加解密和简单的逻辑处理 ,或者对于页面数据的封装,你能够理解为一个入口而service只须要处理复杂业务。接口
总结:get
底层数据库(具体数据的存储)——>dao(实现从表中读数据)——>domain(讲表与实体进行关联,进行实体的定义,set,get方法的定义)——>service(逻辑的实现,进行数据关联,方便底层取数据)——>controller(方便为前段提供数据)。it