Springboot中的三层架构

这篇具有很好参考价值的文章主要介绍了Springboot中的三层架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       

目录

前言

1.Dao(数据访问层/持久层)

2.Service(业务逻辑层)

3.Controller(控制层)

总结:


前言

        我们在进行前后端交互的时候,会分为数据访问,业务逻辑,接受请求并响应数据三个操作,这三部分其实是可以拆分的,让他们解耦,否则代码复用性差并且不易维护,所以诞生了三层架构——1.Dao(数据访问层/持久层)、2.Service(业务逻辑层)、3.Controller(控制层)

         首先我们可以看看,普通的交互代码:

        各部分操作全部糅合在一个类中, 我选中的三个框其实都可以拆分开来 

springboot三层架构,Java,SpringBoot,架构

1.Dao(数据访问层/持久层)

        负责数据访问操作,包括增删改查

         springboot三层架构,Java,SpringBoot,架构

         我们一般用接口来实现,接口在这有以下好处:

        在传统的Java开发中,DAO(Data Access Object)层通常用于封装对数据源(如数据库、文件系统等)的访问操作。使用接口定义DAO层的契约可以带来以下好处:

  1. 抽象和规范:接口定义了DAO层的契约,规定了应该提供哪些数据访问方法和操作。这样可以使代码更加抽象、可扩展和可维护。

  2. 解耦和可替换性:通过面向接口编程,DAO层的实现类与上层业务逻辑层之间可以实现解耦。业务逻辑层只依赖于DAO接口而不关心具体的实现类,这使得在需要更换底层数据源或更换数据访问方式时更加方便。

  3. 可测试性:接口可以提供更好的可测试性。通过使用接口,可以轻松地创建模拟对象或测试替身来进行DAO层的单元测试,而不需要依赖于真实的数据源。

  4. 面向切面编程:通过接口,可以更容易地将事务管理、异常处理等横切关注点应用到DAO层中,提供更好的代码结构和可维护性。

springboot三层架构,Java,SpringBoot,架构

        比如我这里就是解析XML文件,将XML内部数据转化为一个集合并返回。 

         

2.Service(业务逻辑层)

        处理具体的业务逻辑,同样也采用接口的形式,Service层可以通过获取Dao层的数据,对数据内部进行处理,然后再返回,接下来给Controller调用

        springboot三层架构,Java,SpringBoot,架构

比如我这里就是简单对性别gender和job这连个属性进行了修改 ,最后返回集合

3.Controller(控制层)

        接收前端发送的请求,对请求进行处理并响应数据

        springboot三层架构,Java,SpringBoot,架构

这里的Result是 SpringBoot中用到的统一格式的响应对象Result,

属性有1.响应状态Code 2.提示信息msg 3.响应的数据data

                springboot三层架构,Java,SpringBoot,架构

        

总结:

springboot三层架构,Java,SpringBoot,架构

        就如同上头的图片所示,我们在Controller中接受请求 ,调用Service进行逻辑处理,而Service中要调用Dao中的方法获取解析得到的数据,一层一层递进,分工明确,程序复用性大大提高。

         在之后,可以继续融合Spring中IOC&DI技术,把Service和Dao中的类交给IOC管理(在类上加@Component注解),然后Controller中要调用Service对象的时候加入@AutoWired自动装配,依赖注入,同理Service调用Dao对象的时候也加入@AutoWired,IOC会将给类型的bean对象赋值给你使用,这样就不用我们手动创建对象了。

springboot三层架构,Java,SpringBoot,架构

​​​​​​​springboot三层架构,Java,SpringBoot,架构文章来源地址https://www.toymoban.com/news/detail-714411.html

到了这里,关于Springboot中的三层架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot三层架构解决报错信息:o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet

    报错信息: postman测试返回的报错信息: controller层代码: 解决办法是将注释@Controller改成@RestController,就可以成功运行,原因我也不知道,刚学这个没多久,记录下来,如果有人能告诉我·原因的话,我会非常感激的。

    2024年02月07日
    浏览(56)
  • 【SpringBoot】读取application.yml配置中的三种方式

    applicaiton.yml BootValueApplicationTests.java 打印如下所示 注意的地方 当对应的值不存在时,系统会报错。我们可以给定一个默认值即可。 如下所示: 在这里,sys.noValue这个值是不存在的,我们可以给定一个默认值为123,当然,我们如果不指定默认值的,它的默认值为空字符串。 优

    2024年02月13日
    浏览(53)
  • java篇-Springboot解决跨域问题的三种方式

    第一种:添加 @CrossOrigin 注解 在Controller层对应的方法上添加@CrossOrigin或者类上添加@CrossOrigin   第二种:添加CORS过滤器 新建配置类CorsConfig,创建 CorsFilter 过滤器,允许跨域  第三种:实现 WebMvcConfigurer ,重写 addCorsMappings 方法 全局配置有可能出现跨域失败的情况,改为过滤

    2024年04月23日
    浏览(45)
  • 【SpringBoot18】SpringBoot 调用外部接口的三种方式

    SpringBoot不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。在Spring-Boot项目开发中,存在着本模块的代码需要访问外面模块接口,或外部url链接的需求, 比如在apaas开发过程中需要封装接口在接口中调用apaas提供的接口(

    2023年04月11日
    浏览(77)
  • Java项目:基于Springboot框架实现的校园求职招聘系统(springboot+vue+B/S架构+源码+数据库+毕业论文)

    本项目是一套springboot341基于Springboot框架实现的校园求职招聘系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行!

    2024年04月29日
    浏览(54)
  • java语言B/S架构云HIS医院信息系统源码【springboot】

      医院云HIS全称为基于云计算的医疗卫生信息系统( Cloud- Based Healthcare Information System),是运用云计算、大数据、物联网等新兴信息技术,按照现代医疗卫生管理要求,在一定区域范围内以数字化形式提供医疗卫生行业数据收集、存储、传递、处理的业务和技术平台,实现区域

    2024年02月12日
    浏览(44)
  • 关于vlan的三层架构实验

    1. 先配置接入层的接口类型及划分 2.配置汇聚层的接口类型及划分 3.配置汇聚层的IP地址及编写缺省、NAT--IP地址转换 4. 给vlan分组,定义组 的主根,组的备份根 5.汇聚层之间使用通道技术(华为:以太网中继Eth-Trunk)  通道技术将多个接口逻辑的整合为一个接口 6.给汇聚层和

    2024年02月12日
    浏览(35)
  • SpringBoot(三层框架Controller,Mapper,Service)中遇到的一些注解整理

    本文主要从Controller层,Service层,Mapper层这三层架构中记录用到的各种注解 还有一些MyBatis用到的注解 持续更新到本人的毕设做完为止,太多了太多了根本学不完哈哈哈 用于建立HTTP请求与处理方法之间的映射关系,其中 XXX Mapping限定了提交http请求的方法 用于获取URL中提交过来的

    2024年01月21日
    浏览(43)
  • Java版B/S架构云his医院信息管理系统源码(springboot框架)

    ♦ 前端:Angular+Nginx ♦ 后台:Java+Spring,SpringBoot,SpringMVC,SpringSecurity,MyBatisPlus,等 ♦ 数据库:MySQL + MyCat ♦ 缓存:Redis+J2Cache ♦ 消息队列:RabbitMQ ♦ 任务调度中心:XxlJob ♦ 接口技术:RESTful API + WebSocket + WebService ♦ 报表组件:itext + POI + ureport2 ♦ 数据库监控组件:Can

    2024年02月04日
    浏览(48)
  • java springboot架构 自定义注解保存项目业务日志,使用线程池保存到数据库

    目录 1:pom.xml依赖 2:注解类样例 3:枚举类 4:具体处理方法类 5:线程池类 1:pom.xml依赖 2:注解类样例 3:枚举类 4:具体处理方法类 5:线程池类

    2024年02月15日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包