我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一层代码,不会影响我其他层代码,

controller层:可以看做是view和Model之间进行沟通的桥梁,可以分发用户的请求,并选择恰当的视图以用于显示,同时可以解释用户的输入并映射为模型层可以执行的操作。

控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。

service层:在接触Spring框架时会了解到面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层

初期也许都是new对象去调用下一层,比如你在业务层new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,因为在业务层中是不应该含有具体对象,最多只能有引用,如果有具体对象存在,就耦合了。当那个对象不存在,我还要修改业务的代码,这不符合逻辑。

接下来说service的意义,其实因为你做的练习分层次不是那么严格,在一个练习中业务本身也少,举个最简单的例子,你做一个分页的功能,数据1000条,你20条在一个页,你可以把这个功能写成工具类封装起来,然后在业务层里调用这个封装的方法,这才是业务里真正干得事,只要没访问数据库的,都要在业务里写。

理解图示如下:

另外在github上新开了一个记录工程,包含了 SpringAOP,死锁,同步锁,读 - 写同步锁,ThreadLocal使用,jdk 1.8 中的日期时间API,数据结构(待完善),生成XML文件工具类,防止XSS漏洞攻击解决办法,mybatis逆向工程,接口并发测试,BIO,NIO, AIO,Netty的服务,客户端... 并且在不断更新中,有不足之处请留言指出。
感兴趣的童鞋可以来捧个场,详情移步github:https://github.com/higminteam/practice

Spring 初次理解MVC 的controller和Service相关推荐

  1. vo、dto、bo、do、po的概念理解以及与controller、service、dao层的对应关系

    目录 概念 关于do的理解 业务逻辑分层 基于springboot的逻辑分层结构 什么时候需要定义这么多O 实际项目中的使用方式 同一微服务中 不同微服务 一般起名规则 概念 VO(View Obje ...

  2. 绝了!这款工具让 Spring Boot 不在需要 Controller、Service、DAO、Mapper 了

    ‍ 来源:my.oschina.net/ta8210/blog/3234639 Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具.使得使用者无需开发任何代码就配置一个满 ...

  3. Spring中的Controller ,Service,Dao是不是线程安全的?

    作者:myseries cnblogs.com/myseries/p/11729800.html 结论:不是线程安全的 Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策 ...

  4. 以切身体会浅谈对Controller和Service的理解

    进入开发行业以来,异常,日志,业务层次划分等等看似简单的问题却让我琢磨了很久,也切身体会到工作经验不仅仅是你技术上的累积,也包含很多类似这种实际工作中的细节问题的处理,而这些却是在课堂上学不会的,只有 ...

  5. 在controller中调用指定参数给指定表单_第005课:Spring Boot 中MVC支持

    Spring Boot 的 MVC 支持主要介绍实际项目中最常用的几个注解,包括 @RestController. @RequestMapping.@PathVariable.@RequestPara ...

  6. 深入浅出的理解框架(Struts2、Hibernate、Spring)与 MVC 设计模式

    现在许许多多的初学者和程序员,都在趋之若鹜地学习Web开发的宝典级框架:Struts2,Spring,Hibernate.似乎这些框架成为了一个人是否精通Java,是否会写J2EE程序的唯一事实标准和 ...

  7. koa --- [MVC实现之四]Router、Controller、Service的实现

    说明 上一篇: [MVC实现之三] 上一篇实现了,Router层.Controller层.Service层的基本原则,并且成功的通过Mar类来传递这些层级之间需要的参数. 这一篇主要是通过业务层面来具 ...

  8. ASP.NET MVC 整合 Spring.net(1)- Controller进容器

    我们都知道Asp.net MVC自有一套执行机制. 通过分析MVC的MvcHandler关键代码 ProcessRequest         protected internal virtual v ...

  9. Spring MVC 之@Controller@RequestMapping详解

    一:配置web.xml 1)问题:spring项目中有多个配置文件mvc.xml   dao.xml 2)解决:在web.xml中 <init-param> <param-name& ...

最新文章

  1. 管道:实用程序服务和数据结构
  2. 教育部:“博士分流淘汰制”真来了!不合格的导师,退出!
  3. JMeter:No-GUI运行及生成漂亮的HTML报告
  4. Redis的优势和特点
  5. 每日程序C语言32-取一个整数从右端开始的4-7位
  6. 利用MS17-010渗透win7(64位)
  7. 推荐一个好用而且免费的XML文件查看工具,高效,易用而且可定制
  8. 1109. 航班预订统计
  9. python 查看数据结构类型_python 数据结构类型总结(示例代码)
  10. Go语言学习Day01
  11. DBSCAN聚类(code)
  12. 情感分析︱网络公开的免费文本语料训练数据集汇总
  13. 我的世界装mod要下java_【新人必看教程】我的世界HMCL下载安装mod模组
  14. 物理与数学的崩溃关系
  15. 如何在Mac之间进行数据迁移,macbook怎么迁移数据
  16. Ubuntu20.04安装搜狗输入法指南
  17. PHP生成腾讯云API签名
  18. 阿里、腾讯裁员,2022金三银四Android开发该何去何从?
  19. Vlink——虚链路
  20. 【毕业设计】基于微信小程序的奶茶店奶茶点单系统

热门文章

  1. sql查询数据库总结
  2. 侯捷C++课程笔记03: STL标准库与泛型编程
  3. serverlet 返回json
  4. IDEA Vue.js插件 2021年1月21日最新
  5. 端游已死?不止如此,PC可能也命不久矣
  6. 将uniapp打包成h5放在安卓webview中(解决uniapp引入第三方地图卡顿问题)
  7. python十进制转换_python实现各进制转换的总结大全
  8. 宜居指数c语言,全国宜居指数第一的城市,环境优美迷人,知名度却不高
  9. Cross-Site Request Forgery (CSRF) Attack Lab网安实验
  10. 一线互联网移动架构师360°全方面性能调优,年薪超过80万!