java web dao层_java web 中web层直接调用dao层 可以吗?
这个就跟Service直接用Java类还是用Interface/Implementation一样。关键是你自己认为是否合理,团队是否有严格要求。
为了说明这个问题,我在网上找了一些图。
web层,业务层,持久层,总体上是这样的关系:
再稍微详细点,是这样:
有一篇文章专门讲到这个2.4. Application Layeringterasolunaorg.github.io
下面简单总结一下这篇文章的思想。
在Spring架构里,是这样:
圆形代表Interface,长方形是Class
如果再考虑进去依赖注入,是这样:
上面这些图都没有直接告诉你Controller可以调用Repository(DAO)。甚至还能给出这个调用参考表:你发现了吗?Controller调用Repository是个X,就是不允许。而且Service调用Service都是警告。
Service调用Service会带来相互依赖问题,事务也不好处理。
原文对上面这个表有一段补充说明:It may be difficult to follow the above rules at the initial phase of application development. If looking at a very small application, it can be created quickly by directly calling the Repository from Controller.
翻译一下:
在应用开发的初始阶段,很难遵循上面的规则。如果是一个很小的应用,让Controller调用Repository会更加快速便捷。
java web dao层_java web 中web层直接调用dao层 可以吗?相关推荐
- java基础代码实例_java学习之web基础(3):Servlet 和 Request的登录处理实例
在页面输入用户名和密码,进行权限判断. 登录成功跳转到SuccessServlet展示:登录成功!用户名,欢迎您: 登录失败跳转到FailServlet展示:登录失败,用户名或密码错误. 我们这里使用 ...
- java gis离线地图_java离线地图web GIS制作
因为项目需求,要做一个web地图,之前做过高德的在线地图,它提供了一系列的API,并且由于是国产的,所以开发起来比较容易,现在由于项目是内网使用的,所以需要使用离线地图,由此便开始了: Web GIS ...
- java domain层_java框架中的controller层、dao层、domain层、service层、view层
1.Controller层:接口层,用户访问请求时对接. Controller层负责具体的业务模块流程的控制,在此层里面要调用Serice层的接口来控制业务流程,控制的配置也同样是在Spring的配置 ...
- java ao层_Java学习过程中的一些记录 DO、DTO、BO、AO、VO、POJO定义 | 酷客365
分层领域模型规约: DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象. DTO( Data Transfer Object):数据传输对象,Service或Ma ...
- java xfire指定参数名_Java编程中使用XFire框架调用WebService程序接口
JAVA调用webservice,当你刚开始接触的时候你会觉得它是一个恶梦,特别是没有一个统一的标准实现,比起.net的那些几步就可以完成的webservice实现,我们看着JAVA的实现真是伤心啊. ...
- java 多线程bean 注入_java多线程中注入Spring对象问题
信息加密之Base64 Base64是一种最简单的简单的加密形式,经常被使用,记录一下,以便日后可以深入了解. jdk格式: //获得密钥Base64Encoder encoder = new Bas ...
- Java私有方法解释_java接口中 定义 private 私有方法
在传统的Java编程中,被广为人知的一个知识点是:java Interface接口中不能定义private私有方法.只允许我们定义public访问权限的方法.抽象方法或静态方法.但是从Java 9 开 ...
- java web系统拆分_Java系统中如何拆分同步和异步
很多开发人员说,将应用程序切换到异步处理很复杂.因为他们有一个天然需要同步通信的Web应用程序.在这篇文章中,我想介绍一种方法来达到异步通信的目的:使用一些众所周知的库和工具来设计他们的系统. 下面的 ...
- java课程设计斗地主_Java课程设计---web版斗地主
一. 团队课程设计博客链接 https://www.cnblogs.com/lanxiang/p/10293812.html 二.个人负责模块和任务说明 负责前后端数据传输 JSP界面的设计 根据后台 ...
- java泡泡堂分析_java泡泡堂 - WEB源码|JSP源码/Java|源代码 - 源码中国
文件名大小更新时间 CrazyArcade\.classpath2952019-11-23 CrazyArcade\.gitignore12052019-11-23 CrazyArcade\.proj ...
最新文章
- YSlow使用指南_最新2.0使用指南中文版
- PHP PDO 连接SQLSErver,PHP 使用 PDO 方式连接 sqlserver ,拼接 的 sql 命令总是报错
- 在pymongo中使用distinct
- Opengl-模型(告别箱子加载模型)
- js获取当前时区GMT
- iframe给php传值,向iframe传递参数
- 中国甲真菌病药物行业市场供需与战略研究报告
- .Net学习(三):初识ASP.Net
- NoSQL之【MongoDB】学习(二):DML和查询操作说明
- python random库 伪随机 随机抽数字 抽学号
- Markdown安装,破解,修改中文
- 清空数据库里面所有表的数据的语句
- uboot如何驱动SD卡
- 主流前端框架的介绍优缺点
- perf_event 事件类型与分类
- 鸿鹄功能架构图:实现一站式异构数据分析
- PHP curl实现GET请求
- linux6.9 fc cache,(转载, 已看)fc-cache出错解决办法.
- 棋盘游戏 五子棋(1.人人对战)
- MTK6226-DS-PHB-SIMB-Load
热门文章
- JavaScript弹出新窗口居中显示
- 警告:隐式声明与内建函数‘exit‘不兼容解决方案
- orangepi找不到GPIO的解决方法
- utf-8编码的中文注释 在 sourceinsight 显示乱码的解决方法---utf8 转gb2312插件
- 支付宝 APP支付(证书)方式遇到的问题和解决办法
- 死锁产生的原因以及解决方法
- 如何在android中创建自定义对话框?
- 当maven说“直到MyRepo的更新间隔过去时,才会重新尝试解析”,该间隔在哪里指定?
- python range函数与numpy arange函数,xrange与range的区别
- TCP/UDP网络编程调试助手下载