目前我所在的项目组采用的是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的四层结构相关推荐

  1. java中随机数怎么定义类_浅析Java中的随机数类

    Java中的随机数是否可以重复?Java中产生的随机数能否可以用来产生数据库主键?带着这个问题,我们做了一系列测试. 1.测试一: 使用不带参数的Random()构造函数 * @author Carl ...

  2. java 线程组作用_浅析Java中线程组(ThreadGroup类)

    一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...

  3. java中拼接和 的区别_浅析Java中String与StringBuffer拼接的区别

    学习笔记: 1.String拼接会创建一个新的String对象,存储拼接后的字符串: StringBuffer拼接是直接在本身拼接,会即时刷新. 2.String只能拼接String类型的字符串: S ...

  4. java中的深度克隆浅克隆_了解Java中的可克隆接口

    java中的深度克隆浅克隆 什么是对象克隆? 对象克隆是生成具有不同名称的对象的精确字段到字段副本的过程. 克隆的对象在内存中有自己的空间,可在其中复制原始对象的内容. 这就是为什么在克隆后更改原始对 ...

  5. java 克隆的作用_关于java中克隆的学习(一)

    java中的克隆,就是要复制对象,但为什么要用克隆呢?我们直接把对象赋值给其它同类型的实例不就行了吗?这就要从java的值传递和引用传递说起了. package dcr.study.test.poin ...

  6. formdata 接受参数中带有class 对象_浅析JAVA中的反射机制及对Servlet的优化

    今天来聊聊java中的反射机制,工作以后发现很多东西动不动就要使用反射或者动态代理,如果不能很好的理解反射,那么对于动态代理等一些重要的设计模式就会有种不够通透的感觉. 所谓的反射,就是在运行状态中, ...

  7. java变量同名_浅析Java中局部变量与成员变量同名解决技巧

    要想区分这哥俩,首先,我们得知道它们分别是什么.先从成员变量下刀. 成员变量 我们来研究一个事物: 属性:外在特征:例如人的身高,体重 行为:能够做什么:例如人有说话,打球等行为. 而在Java语言中 ...

  8. java深度克隆_浅析Java中clone()方法浅克隆与深度克隆

    现在Clone已经不是一个新鲜词语了,伴随着"多莉"的产生这个词语确实很"火"过一阵子,在Java中也有这么一个概念,它可以让我们很方便的"制造&qu ...

  9. java group类_浅析Java中线程组(ThreadGroup类)

    Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线程,这样的 ...

最新文章

  1. 六、springboot整合swagger
  2. 创建型设计模式之建造者模式(Builder)
  3. BZOJ 4244 邮戳拉力赛 (DP)
  4. linux中menu命令,menucofig 详解
  5. Bit-Z转入GXS、PPS、SPHTX、EOS未到账解决方案
  6. 架构学习优秀网站整理
  7. 对联系人进行增删改查
  8. Study to Innovation 的一般步骤总结
  9. 会按摩的充气颈枕,只占行李箱一个角,却能让你的脖子爽到爆
  10. 第一家云创大数据产业学院在佛山职业技术学院挂牌
  11. SpringBoot中级篇-事务@Transactional注解无效
  12. python实现isprime函数、参数为整数、要有异常处理_Python期末复习题1
  13. 帮助用户进行日常健康管理,常仁科技完成1亿元A轮融资
  14. Pattern Recognition and Machine Learning(模式识别与机器学习)第一章导读
  15. 再战高端智能电动化,错失先机的长安能靠华为“翻盘”?
  16. 最小二乘法曲线拟合(MATLAB)
  17. python长度转换代码尺和米_尺,寸,跟米,厘米的换算??
  18. Cartographer 源码解析1.1 —— 算法整体结构
  19. 关于央行新推数字货币的综述
  20. uniapp H5公众号errMsg: “onMenuShareAppMessage:fail, the permission value is offline verifying“

热门文章

  1. php二维数组排序 按照指定的key 对数组进行排序
  2. 顺利搭建了oracle
  3. Spring+Spring Security+JSTL实现的表单登陆的例子
  4. Oracle 数据库实例启动关闭过程
  5. qt乱码Could not decode“xxx.cpp“ with “UTF-8“-encoding.Editing not possible问题处理
  6. VC Ws2_32.lib
  7. 天联高级版客户端_金万维天联高级版服务器安装配置全流程以及客户端登录流程...
  8. android ble 连续读写,Android BLE实现对蓝牙的读写
  9. decimal double java_Java BigDecimal和double BigDecimal类
  10. Session会话技术