SpringBoot数据响应、分层解耦、三层架构

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

响应数据

@ResponseBody

  • 类型:方法注解、类注解
  • 位置:Controller方法、类上
  • 作用:将方法返回值直接响应,如果返回值类型是 实体对象/集合 ,将会转换为json格式响应
  • 说明:@RestController = @Controller + @ResponseBody

统一响应结果

SpringBoot数据响应、分层解耦、三层架构

步骤 :

  • 获取员工数据,返回统一响应结果,在页面渲染展示

  • 在pom.xml文件中引入dom4j的依赖,用于解析xml文件
    SpringBoot数据响应、分层解耦、三层架构

  • 编写解析xml的工具类、对应的实体类、xml文件xxx.xml

  • 页面静态文件,放在resourcse下的static目录下

  • 编写Controller程序,处理请求,响应数据

注意

springboot项目的静态资源(html,css,js等前端资源)默认存放目录为:classpath:/static 、 classpath:/public 、classpath:/recourcse

分层解耦

三层架构 ----单一职责原则

SpringBoot数据响应、分层解耦、三层架构

  • controller:控制层,接收前端发送的请求,对请求进行处理,并响应数据
  • service:业务逻辑层,处理具体的业务逻辑
  • dao:数据访问层(Data Access Object)(持久层),负责数据访问操作,包括数据的增、删、改、查
    SpringBoot数据响应、分层解耦、三层架构

例如:

SpringBoot数据响应、分层解耦、三层架构

分层解耦---高内聚低耦合

  • 内聚:软件中各个功能模块内部的功能联系

  • 耦合:衡量软件中各个层/模块之间的依赖、关联程度
    SpringBoot数据响应、分层解耦、三层架构

  • 控制反转:Inversion Of Control,简称IOC。对象的创建控制权由程序自身转移到外部(容器),这种思想成为控制反转。

  • 依赖注入:Dependency Injection,简称DI。容器为应用程序提供运行时所依赖的资源,称之为依赖注入。

  • Bean对象:IOC容器中创建、管理的对象,称之为bean。

IOC&DI入门 ----步骤

  1. Service层及Dao层的实现类,交给IOC容器管理(控制反转)
    Dao层:
    SpringBoot数据响应、分层解耦、三层架构

Service层:
SpringBoot数据响应、分层解耦、三层架构

  1. 为Controller及Service注入运行时,依赖的对象(依赖注入)
    Controller层:
    SpringBoot数据响应、分层解耦、三层架构

    Service层:
    SpringBoot数据响应、分层解耦、三层架构

  2. 运行测试

@Component ----将当前类交给IOC容器管理,成为IOC容器中的bean

  • 将service层和dao层交给容器管理

@Autowired ---- 运行时,IOC容器会提供该类型的Bean对象,并赋值给该变量 - 依赖注入

  • controller层依赖service层
  • service层依赖dao层

IOC详解

Bean的声明
SpringBoot数据响应、分层解耦、三层架构

注解 说明 位置
@Component 声明bean的基础注解 不属于一下三类时,用此注解
@Controller @Component的衍生注解 标注在控制器类上
@Service @Component的衍生注解 标注在业务类上
@Respository @Component的衍生注解 标注在数据访问类上(由于与mybatis整合,用的少)

@Controller:在实际开发中,标注了@RestController,可以不写,由于@RestController = @Controller + @ResponseBody

注意

  • 声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写
  • 使用以上四个注解都可以声明bean,但是在springboot集成web开发中,声明控制器bean只能用@Controller

bean的组件扫描

  • 前面声明bean的四大注解,想要生效,还需要被组件扫描注解@ComponentScan扫描
  • @ComponentScan注解虽然没有显示配置,但是实际上已经包含在了启动类声明注解@SpringBootApplication中,默认扫描范围是启动类所在包及其子包

小结

  • 声明bean的注解:@Component、@Controller、@Service、 @Respository
  • @SpringBootApplication具有包扫描作用,默认扫描当前包及其子包

DI详解

Bean注入:

  • @Autowired注解,默认是按照类型进行,如果存在多个相同类型的bean,将会报出如下错误
    SpringBoot数据响应、分层解耦、三层架构

  • 通过以下几种方案来解决:
    1、@Primary --- 设置bean的优先级
    SpringBoot数据响应、分层解耦、三层架构

    2、@Qualifier ---声明指明哪个bean(类型指定)
    SpringBoot数据响应、分层解耦、三层架构

    3、@Resource --- 指定bean的名字(名字指定)
    SpringBoot数据响应、分层解耦、三层架构

依赖注入的注解:

SpringBoot数据响应、分层解耦、三层架构

@Resource与@Autowired区别:

SpringBoot数据响应、分层解耦、三层架构文章来源地址https://www.toymoban.com/news/detail-736161.html

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

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

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

相关文章

  • Springboot中的三层架构

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

    2024年02月08日
    浏览(39)
  • JavaWeb_Web后端_分层解耦

    controller: 控制层, 接收前端发送的请求, 对请求进行处理, 并响应数据. service: 业务逻辑层, 处理具体的业务逻辑. dao: 数据访问层(Data Access Object)(持久层), 负责数据访问操作, 包括数据的增, 删, 改, 查. 接口: 实现: 接口: 实现: 内聚: 软件中各个功能模块内部的功能联系. 耦合: 衡

    2024年02月03日
    浏览(31)
  • SpringBoot(入门)三层架构Controller、Service、Dao

    SpringB是一个基于Java的开源框架,用于创建微服务。它由Pivotal Team开发,用于构建独立的生产就绪Spring应用。 SpringBoot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件,简化开发。 Controller层:(顾名思义 控制层)控制并处理http请求,将其不

    2024年02月07日
    浏览(31)
  • 【Spring云原生系列】SpringBoot+Spring Cloud Stream:消息驱动架构(MDA)解析,实现异步处理与解耦合!

    🎉🎉 欢迎光临,终于等到你啦 🎉🎉 🏅我是 苏泽 ,一位对技术充满热情的探索者和分享者。🚀🚀 🌟持续更新的专栏 《Spring 狂野之旅:从入门到入魔》 🚀 本专栏带你从Spring入门到入魔   这是苏泽的个人主页可以看到我其他的内容哦👇👇 努力的苏泽 http://suzee.blog.

    2024年03月10日
    浏览(40)
  • Unity3D 服务器逻辑和传输如何分层/解耦详解

    Unity3D 是一款强大的游戏开发引擎,它提供了丰富的功能和工具,使得开发者可以轻松地创建高质量的游戏。在游戏开发过程中,服务器逻辑和传输是非常重要的组成部分。本文将详细介绍如何在Unity3D中实现服务器逻辑和传输的分层和解耦。 对啦!这里有个游戏开发交流小组

    2024年01月16日
    浏览(34)
  • Java后端开发:SpringBoot项目中的三层架构与代码角色

    目前,大部分后端项目主要目的是暴露功能接口(API)到网络上,由前端程序访问这些接口并获取数据,然后展示在界面上,它们之间遵从Restful规约;还有一部分项目暴露方法,让前端代码实现远程调用,采用的是RPC的思想。 但是无论如何,后端程序存在的意义就是交换、

    2024年02月06日
    浏览(34)
  • Springboot三层架构--DAO层、Service层、Colltroler层--这波我在外太空

    目录 1.DAO层 Dao层的设计 2.Service层 Service层的设计 设计Service层的优点  Dao与Service的关系 3.Colltroler层 Collertroler层的设计 4.项目中的具体流程         全称 数据访问层 ,全称data access object,属于一种比较底层,比较基础的操作。具体到对于某个表、某个实体类的增删改查,

    2024年02月08日
    浏览(35)
  • springboot三层架构解决报错信息:o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet

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

    2024年02月07日
    浏览(41)
  • 01-三层架构之查询数据库数据

       

    2024年02月03日
    浏览(28)
  • SpringBoot查找多级商品方案【一次sql查询所有数据,循环处理分层逻辑】

    一、查找所有商品 1、service CategoryServiceImpl.java this::category2CategoryVo 等价于 e - category2CategoryVo(e) 2、循环查找子目录 CategoryServiceImpl.java 3、直接拷贝数据 CategoryServiceImpl.java 二、根据categoryId查找多级商品 1、ProductServiceImpl.java 2、CategoryServiceImpl.java

    2024年02月12日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包