spingboot分层解耦

目录

三层架构

IOC与ID引入

IOC与ID入门

IOC详解

bean组件扫描

依赖注入DI详解

@Resource与@Autowired注解区别


三层架构

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

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

dao:数据访问层(Data Access Object)(持久层),负责数据访问操作,包括数据的增删改查

IOC与ID引入

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

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

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

IOC与ID入门

@Component注解:将当前类交给IOC容器管理,成为IOC容器中的Bean;

@Autowired注解:程序运行时,IOC容器会提供该类型的bean对象,并复制给变量-依赖注入

IOC详解

注意事项:

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

2、使用以上四个注解都可以声明bean,但是在springboot继承web开发中,声明控制器bean只能用@Controller

bean组件扫描

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

 @ComponentScan注解虽然没有显示配置,但是实际上已经包含在启动类声明注解@SpringBootApplication中,默认扫描的范围是启动类所在包及其子包。(推荐:是一种规范)

依赖注入DI详解

@Autowired注解,默认是按照类型进行,如果存在多个相同类型的bean,会产生报错。

解决方法:

@Primary,在业务层service加一个优先级,想要让他生效,其他不生效。

@Qualifier:在依赖注入时,表名注入哪个bean;例如:@Qualifier("serviceA")。

@Resource:这个时候,去掉@Autowired,只是用@Resource;

例如:@Resource(name="serviceB")

@Resource与@Autowired注解区别

@Autowired是spring框架提供的注解,而@Resource是JDK提供的注解。

@Autowired默认是按照类型注入,而@Resource是按照名称注入。

相关推荐

  1. 分层-三层架构

    2024-04-29 14:06:05       9 阅读
  2. Web后端开发(分层

    2024-04-29 14:06:05       6 阅读
  3. springboot 、隔离、异步的原则以及实战

    2024-04-29 14:06:05       9 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-29 14:06:05       14 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-29 14:06:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-29 14:06:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-29 14:06:05       18 阅读

热门阅读

  1. 言语。。。

    2024-04-29 14:06:05       11 阅读
  2. ChatGPT使用指南:Prompt简单提示词

    2024-04-29 14:06:05       13 阅读
  3. 图神经网络 | 混合神经网络模型GCTN地铁客流预测

    2024-04-29 14:06:05       16 阅读
  4. GeoServer改造Springboot源码八(图层预览设计)

    2024-04-29 14:06:05       14 阅读
  5. 用 hdparm 释放 Linux 的力量

    2024-04-29 14:06:05       13 阅读
  6. 《21天学通C++》实现继承(1)

    2024-04-29 14:06:05       13 阅读
  7. k8s:使用Fabric 来访问api-server

    2024-04-29 14:06:05       10 阅读
  8. css实现dom脱离文档流定位固定位置

    2024-04-29 14:06:05       14 阅读
  9. Elasticsearch索引监控全面解析

    2024-04-29 14:06:05       15 阅读
  10. mysql的触发器,存储过程

    2024-04-29 14:06:05       12 阅读
  11. Elasticsearch索引状态管理实战指南

    2024-04-29 14:06:05       17 阅读
  12. Redis(五) Redis锁

    2024-04-29 14:06:05       14 阅读