当前位置: 首页 > news >正文

分层解耦介绍

三层架构

        Controller:控制层,接受前端发送的请求,对请求进行处理,并响应数据

        service:业务逻辑层,处理具体业务逻辑

        dao:数据访问层,负责数据访问操作,包括数据的增、删、改、查

分层解耦

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

        耦合:衡量软件中各个层/模块之间的依赖、关联的程度

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

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

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

IOC&DI入门

步骤:

Service层及Dao层的实现类,交给IOC容器管理(添加@Component)

为Controller及Service注入运行时,依赖对象(添加@Autowired)

IOC详解

Bean的声明

要把某个对象交给IOC容器管理,需要在对应的类上加上如下注解之一:

注解:

@Component:声明bean的基础注解(不属于以下三类时,用此注解)

@Controller:@component的衍生注解(标注在控制器类上)

@Service:@component的衍生注解(标注在业务类上)

@Repository:@component的衍生注解(标注在数据访问类上)

注意:声明bean的时候,可以通过value属性指定bean的名字,如果没有指定,默认为类名首字母小写

使用以上四个注解都可以声明bean,但是在spring boot集成web开发中,声明控制器bean只能用@Controller

Bean组件扫描

        前面声明bean的四大注解,要想生效,还需要被组件扫描注解@ComponentScan扫描

        @ComponentScan注解虽然没有显示配置,但实际上已经包含在了启动类声明注解@SpringBootApplication中,默认扫描的范围时启动类所在包及其子包

DI详解

依赖注入的注解:

        @Autowired:默认按照类型自动装配

        如果同类型的bean存在多个:

                @Primary

                @Autowired+@Qualifler(''bean的名称")

                @Resource(name="bean的名称")

http://www.lryc.cn/news/146890.html

相关文章:

  • Nginx百科之gzip压缩、黑白名单、防盗链、零拷贝、跨域、双机热备
  • git通过fork-merge request实现多人协同
  • 元素居中的方法总结
  • 后端面试话术集锦第一篇:spring面试话术
  • elasticsearch8.9.1集群搭建
  • 前端调用电脑摄像头
  • 网络编程day1——进程间通信-socket套接字
  • Android-关于页面卡顿的排查工具与监测方案
  • VueX 与Pinia 一篇搞懂
  • 指针与空间按钮的交互
  • java八股文面试[数据库]——慢查询优化
  • 《Flink学习笔记》——第十章 容错机制
  • 【LeetCode-中等题】230. 二叉搜索树中第K小的元素
  • DQL语句的用法(MySQL)
  • 【Navicat Premium 16】使用Navicat将excel的数据进行单表的导入,详细操作
  • 学习笔记230810--vue项目中get请求的两种传参方式
  • 分享一种针对uni-app相对通用的抓包方案
  • 【2023百度之星备赛】码蹄集 BD202301 公园(BFS求最短路)
  • 2022年下半年系统架构设计师真题(下午带答案)
  • 26、ADS瞬时波形仿真-TRANSIENT仿真(以共射放大器为例)
  • 【微服务部署】02-配置管理
  • NTP时钟同步服务器
  • webassembly003 ggml GGML Tensor Library part-2 官方使用说明
  • ES主集群的优化参考点
  • 全国范围内-二手房小区数据-2023-8月更新
  • 第4章 循环变换
  • spring cloud使用git作为配置中心,git开启了双因子认证,如何写本地配置文件
  • JVM内存管理、内存分区:堆、方法区、虚拟机栈、本地方法栈、程序计数器
  • L1-047 装睡(Python实现) 测试点全过
  • Mysql优化原理分析