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

Spring对象装配

      在spring中,Bean的执行流程为启动spring容器,实例化bean,将bean注册到spring容器中,将bean装配到需要的类中。

既然我们需要将bea装配到需要的类中,那么如何实现呢?这篇文章,将来阐述一下如何实现将bean装配到需要的类中,我们叫它对象装配或者对象注入。

 

一.对象装配的三种方法

对象装配主要有三种方法:

1.属性注入

2.构造方法注入

3.setter方法注入

 

1.属性注入

属性注入可以使用@Autowired注解,这相当于从spring里拿了一个对象。

属性注入:优点是简单方便,易于使用。缺点是只能在IoC容器使用,不能在非IoC容器使用。,并且只有在使用的时候才会出现空指针异常,很容易违背单一设计原则

(虽然缺点多,但依然是最常用的在目前,因为它的优点简单易用让它非常突出,如果违反了单一原则也可以通过代码来解决)

fe3b07659f48488fadc2234463213f6b.png

 

2.setter方法注入

 

Setter方法注入:

优点是完全符合单一设计原则,因为使用set方法传参就是只传入一个对象

缺点是无法注入一个不可变对象(final修饰的对象),注入的内容可以被修改(可以调用set方法修改)

 

Settr方法是spring早期推荐的注入方法,在通用性上不如构造方法,现在的spring以及推荐使用构造方法注入的方式来进行注入。

6ec2af78c5c3476f80fbed1305d5d30b.png

 

3.构造函数注入

 

构造方法注入:

构造方法注入式spring官方推荐的注入方式,它的优点是通用性好,在注入之前能够保证注入的对象不为空。可以注入不可变对象,注入的内容不可以被修改,注入的对象会被完全初始化

它的缺点是如果有多个注入会显得臃肿,代码量多。

be6fcc110c6a43fe98822645b1e32e55.png

 

单一设计原则(简单点说,就是一个类只干一件事情,只负责一个职责,对于一个类,不能让它负责多个职责)

 

 

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

相关文章:

  • bigemap如何添加mapbox地图?
  • python爬虫6:lxml库
  • Linux查找命令
  • 在 IntelliJ IDEA 中使用 Docker 开发指南
  • 【并发编程】自研数据同步工具的优化:创建线程池多线程异步去分页调用其他服务接口获取海量数据
  • python函数、运算符等简单介绍3(无顺序)
  • TCP服务器(套接字通信)
  • 【智慧工地源码】:人工智能、BIM技术、机器学习在智慧工地的应用
  • 使用python读Excel文件并写入另一个xls模版
  • 债务人去世,债权人要求其妻女承担还款责任,法院支持吗
  • arcgis pro3.0-3.0.1-3.0.2安装教程大全及安装包下载
  • @RequestHeader使用
  • LabVIEW开发图像采集和基于颜色的隔离
  • 站长公益主机,免费主机➕免费域名➕博客申请➕论坛申请
  • 【PRO-UPDATE】自动更新程序图形小记
  • flume系列之:监控Systemctl托管的flume agent组
  • 16.3.1 【Linux】程序的观察
  • HarmonyOS 设置全屏NoTitleBar
  • Java 模块解耦的设计策略
  • 支持https访问
  • JavaScript 中常用简写技巧总结
  • 第15集丨Vue 江湖 —— 组件
  • 【JVM】CPU飙高排查方案与思路
  • 使用公网访问内网IIS网站服务器【无需公网IP】
  • Vim学习(二)—— 编译C程序
  • 【maven】常见命令
  • vue单项数据传输流式回复功能,post传值可关闭请求(@microsoft/fetch-event-source)
  • “深入探究JVM内部机制:理解Java虚拟机的工作原理“
  • ubuntu18.04下配置muduoC++11环境
  • leetcode 力扣刷题 数组交集(数组、set、map都可实现哈希表)