中service层的作用_浅析Java中dto、dao、service、controller的四层结构
目前我所在的项目组采用的是SpringBoot框架,前端使用BootStrap+jQuery。
SpringBoot是BS开发框架之一,不用单独开启tomcat服务器,目前比较流行,一般开发大型项目时会将所有的功能细分为许多小模块,每个模块都有dto、dao、service和controlleer层,有些模块还会加入validate层。
先给大家看个小模块的目录结构。
首先,最底层的就是dto层,dto层就是所谓的model,dto中定义的是实体类,也就是.class文件,该文件中包含实体类的属性和对应属性的get、set方法;
其次,是dao层(dao层的文件习惯以*Mapper命名),dao层会调用dto层,dao层中会定义实际使用到的方法,比如增删改查。一般在dao层下还会有个叫做sqlmap的包,该包下有xml文件,文件内容正是根据之前定义的方法而写的SQL语句;
之后,到了service层,service层会调用dao层和dto层,service层也会对数据进行一定的处理,比如条件判断和数据筛选等等;
最后,是controller层,controller层会调用前面三层,controller层一般会和前台的js文件进行数据的交互, controller层是前台数据的接收器,后台处理好的数据也是通过controller层传递到前台显示的。
中service层的作用_浅析Java中dto、dao、service、controller的四层结构相关推荐
- java中随机数怎么定义类_浅析Java中的随机数类
Java中的随机数是否可以重复?Java中产生的随机数能否可以用来产生数据库主键?带着这个问题,我们做了一系列测试. 1.测试一: 使用不带参数的Random()构造函数 * @author Carl ...
- java 线程组作用_浅析Java中线程组(ThreadGroup类)
一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...
- java中拼接和 的区别_浅析Java中String与StringBuffer拼接的区别
学习笔记: 1.String拼接会创建一个新的String对象,存储拼接后的字符串: StringBuffer拼接是直接在本身拼接,会即时刷新. 2.String只能拼接String类型的字符串: S ...
- java中的深度克隆浅克隆_了解Java中的可克隆接口
java中的深度克隆浅克隆 什么是对象克隆? 对象克隆是生成具有不同名称的对象的精确字段到字段副本的过程. 克隆的对象在内存中有自己的空间,可在其中复制原始对象的内容. 这就是为什么在克隆后更改原始对 ...
- java 克隆的作用_关于java中克隆的学习(一)
java中的克隆,就是要复制对象,但为什么要用克隆呢?我们直接把对象赋值给其它同类型的实例不就行了吗?这就要从java的值传递和引用传递说起了. package dcr.study.test.poin ...
- formdata 接受参数中带有class 对象_浅析JAVA中的反射机制及对Servlet的优化
今天来聊聊java中的反射机制,工作以后发现很多东西动不动就要使用反射或者动态代理,如果不能很好的理解反射,那么对于动态代理等一些重要的设计模式就会有种不够通透的感觉. 所谓的反射,就是在运行状态中, ...
- java变量同名_浅析Java中局部变量与成员变量同名解决技巧
要想区分这哥俩,首先,我们得知道它们分别是什么.先从成员变量下刀. 成员变量 我们来研究一个事物: 属性:外在特征:例如人的身高,体重 行为:能够做什么:例如人有说话,打球等行为. 而在Java语言中 ...
- java深度克隆_浅析Java中clone()方法浅克隆与深度克隆
现在Clone已经不是一个新鲜词语了,伴随着"多莉"的产生这个词语确实很"火"过一阵子,在Java中也有这么一个概念,它可以让我们很方便的"制造&qu ...
- java group类_浅析Java中线程组(ThreadGroup类)
Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的 ...
最新文章
- 六、springboot整合swagger
- 创建型设计模式之建造者模式(Builder)
- BZOJ 4244 邮戳拉力赛 (DP)
- linux中menu命令,menucofig 详解
- Bit-Z转入GXS、PPS、SPHTX、EOS未到账解决方案
- 架构学习优秀网站整理
- 对联系人进行增删改查
- Study to Innovation 的一般步骤总结
- 会按摩的充气颈枕,只占行李箱一个角,却能让你的脖子爽到爆
- 第一家云创大数据产业学院在佛山职业技术学院挂牌
- SpringBoot中级篇-事务@Transactional注解无效
- python实现isprime函数、参数为整数、要有异常处理_Python期末复习题1
- 帮助用户进行日常健康管理,常仁科技完成1亿元A轮融资
- Pattern Recognition and Machine Learning(模式识别与机器学习)第一章导读
- 再战高端智能电动化,错失先机的长安能靠华为“翻盘”?
- 最小二乘法曲线拟合(MATLAB)
- python长度转换代码尺和米_尺,寸,跟米,厘米的换算??
- Cartographer 源码解析1.1 —— 算法整体结构
- 关于央行新推数字货币的综述
- uniapp H5公众号errMsg: “onMenuShareAppMessage:fail, the permission value is offline verifying“
热门文章
- php二维数组排序 按照指定的key 对数组进行排序
- 顺利搭建了oracle
- Spring+Spring Security+JSTL实现的表单登陆的例子
- Oracle 数据库实例启动关闭过程
- qt乱码Could not decode“xxx.cpp“ with “UTF-8“-encoding.Editing not possible问题处理
- VC Ws2_32.lib
- 天联高级版客户端_金万维天联高级版服务器安装配置全流程以及客户端登录流程...
- android ble 连续读写,Android BLE实现对蓝牙的读写
- decimal double java_Java BigDecimal和double BigDecimal类
- Session会话技术