从最常规的分层结构来说,系统层次从上到下依次为:

表现层:主要是客户端的展示。

服务层:直接为客户端提供的服务或功能。也是系统所能对外提供的功能。

领域层:系统内的领域活动。

DAO层:数据访问对象,通过领域实体对象来操作数据库。

其中有些指导原则:

1、上层总是依赖其下层,依赖关系不跨层。

2、表现成除外,同一层之间方法不允许相互调用。这是实际开发中一些开发者容易范的错误!如果真是同一层之间存在方法调用,需要注意,这些调用都是一些上层不可见方法,比如一些工具方法等。

3、一切从服务层出发,从系统需要提供的功能进行分析,确定Service接口中的方法。而不是从数据库的表出发,创建DAO,再创Domain,然后Service,这实际上是对系统分层的误解。

4、系统最核心的设计就是将系统中的实体划分为领域模型。在此基础上设计数据的DAO层,并将这些活动暴露给服务层,服务层的实现依赖于领域活动。

5、每个接口的职责范围明确有界。

文件名称:

Action(表现层)

Domain(领域层)

Service(服务层)

Persistence(持久层,也就是DAO层)

Util(存一些常用的工具类)

java dao domain_java service domain dao 分层思路相关推荐

  1. java mysql多次事务 模拟依据汇率转账,并存储转账信息 分层完成 dao层 service 层 client层 连接池使用C3p0 写入库使用DBUtils...

    Jar包使用,及层的划分 c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3 ...

  2. java dao 单元测试_Spring Service、Dao进行Junit单元测试

    pring对Controller.Service.Dao进行Junit单元测试总结 ​ 所有用Junit进行单元测试,都需要下面的配置 @RunWith(SpringJUnit4ClassRunner ...

  3. Java中 Dao,Service,Controller,Util,Model 是什么意思,为什么划分?

    来源:zhihu.com/question/58410621/answer/156868800 适合受众 :2年以下的初级程序员和0基础的门外汉 内容大纲: 1.为什么需要一个好的代码结构 2.什么样 ...

  4. 在普通Java类里使用spring里注入的service、dao等

    版权声明:本文为博主武伟峰原创文章,转载请注明地址http://blog.csdn.net/tianyaleixiaowu. 在spring管理的web项目里,譬如Struts和spring的项目,配 ...

  5. 【Spring】JavaBean、MVC软件设计模式与Java中Dao、Service、Controll三层体系

    文章目录 一.JavaBean 二.Java三层体系 1.Dao层 2.Service层 3.Controller层 三者之间的关系 三.MVC设计模式 1.模型 2.视图 3.控制器 三者之间的关系 ...

  6. 中service层的作用_浅析Java中dto、dao、service、controller的四层结构

    目前我所在的项目组采用的是SpringBoot框架,前端使用BootStrap+jQuery. SpringBoot是BS开发框架之一,不用单独开启tomcat服务器,目前比较流行,一般开发大型项目时 ...

  7. 代码结构中 Dao,Service,Controller,Util,Model 是什么意思,为什么划分?

    欢迎关注方志朋的博客,回复"666"获面试宝典 适合受众:2年以下的初级程序员和0基础的门外汉 内容大纲: 1.为什么需要一个好的代码结构 2.什么样才是一个好的结构 3.每一个分 ...

  8. 部门微服务:基本dao和service代码编写

    package com.learn.domain.company;import javax.persistence.Entity; import javax.persistence.Id; impor ...

  9. SpringBoot框架中各层(DTO、DAO、Service、Controller)理解

    粗略理解 View层→Controller层(响应用户请求)→Service层(接口→接口实现类)→DAO层,即Mapper层(抽象类:xxxMapper.java文件,具体实现在xxxMapper. ...

最新文章

  1. zookeeper快速入门——部署
  2. 一文详解单目结构光参数法
  3. 使用Spring MVC统一异常处理实战
  4. PKUWC 2018游记
  5. DOSBOX使用的一些方法和注意点(汇编实验中遇到的)
  6. 怎样编写一个Photoshop滤镜(1)
  7. BZOJ 2458 最小三角形(分治)
  8. SLF4J:Failed to load class org.slf4j.impl.StaticLoggerBinder
  9. 学习笔记6—pandas中ix,loc,iloc有什么区别?
  10. Vue之Promise
  11. linux 定时执行某个任务,多个时间段
  12. lumen mysql 事务_数据库事务不执行回滚?
  13. 聚类分析通俗易懂解释
  14. 什么叫TEM、TE、TM电磁波?有啥区别-史上最明白的解释
  15. 【读书】兔兔西的已读书单
  16. [keil5]从AC5到AC6的转变
  17. 小菜鸟的自我激励与不服输的心
  18. 关闭删库跑路的后门,打造高可用的MySQL
  19. linux卸载oracle11,centos7卸载oracle11g
  20. 使用流量时微信联系不到服务器,iphone6在流量模式下也就是关闭无线用4G模式收不到任何信息通知,QQ微信啥都没有!什么原因...

热门文章

  1. 标题在图表上_Excel 2010基础应用:图表的创建与编辑
  2. 2021数据技术嘉年华线上召开,万人观看,迎接国产数据库的耕获菑畬之年
  3. 14日晚8点直播丨 经典知识库:性能优化那些事
  4. PostgreSQL中如何实现密码复杂度检查?
  5. DBASK问答集萃第二期
  6. 基于权重的节点驱逐 - Oracle RAC 12.2 新特性
  7. 从一盏路灯,看亿万级联接的智能之路
  8. 【华为云技术分享】盘点物联网常用开发板
  9. 细数MQ那些不得不说的8大好处
  10. 暴雪插件占用服务器,暴雪为部分高负载、高排队的服务器开启免费转服服务 解决负载过高问题...