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

Spring IOC 注入的3种方式

Spring IOC 注入的3种方式

  • 1. 构造器注入(Constructor Injection)
  • 2. Setter方法注入(Setter Injection)
  • 3. 字段注入(Field Injection)


💖The Begin💖点点关注,收藏不迷路💖

Spring IoC容器支持多种依赖注入方式,其中最常见的是:

1. 构造器注入(Constructor Injection)

  • 特点:通过构造函数传递依赖项。
  • 优点:确保依赖项不可变,增强封装性。
  • 适用场景:依赖项是必需的,且在对象创建时就需要。

示例:

@Component  
public class UserService {  private final UserRepository userRepository;  @Autowired  public UserService(UserRepository userRepository) {  this.userRepository = userRepository;  }  
}

2. Setter方法注入(Setter Injection)

  • 特点:通过setter方法传递依赖项。
  • 优点:灵活性高,依赖项可选,便于单元测试。
  • 适用场景:依赖项不是必需的,或在对象创建后可能需要修改。

示例:

@Component  
public class UserService {  private UserRepository userRepository;  @Autowired  public void setUserRepository(UserRepository userRepository) {  this.userRepository = userRepository;  }  
}

3. 字段注入(Field Injection)

  • 特点:直接在类的字段上使用注解来注入依赖项。
  • 优点:代码简洁,减少了setter方法的编写。
  • 缺点::可能破坏封装性,并且在某些情况下(如单元测试)难以替换依赖项。

示例:

使用@Autowired注解直接注入字段。

@Component  
public class UserService {  @Autowired  private UserRepository userRepository;  // 其他方法...  
}

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖
http://www.lryc.cn/news/419910.html

相关文章:

  • 无人机影像基于机器学习的遥感反演及其结果可视化,定量遥感反演结果出图,相关性分析,指标筛选,特征选择
  • Eclipse插件之Java Dependency Viewer(显示类和包的关系图)
  • H5小游戏出海,如何流量变现?
  • 轻空间六大专利优势:引领气膜建筑新时代
  • LeetCode-day37-2940. 找到 Alice 和 Bob 可以相遇的建筑
  • unity 判断平台
  • PyCharm找不到Python了咋办
  • BRC-100 协议
  • 茶余饭后(六)
  • 秋招复习笔记——八股文部分:网络IP
  • 量化投资基础(四)之AR、MA、ARMA与ARIMA模型
  • LVS(Linux Virtual Server)详解
  • uniapp版本更新除了plus.runtime.getProperty的解决办法
  • MySQL笔记-基础篇(二):多表查询
  • 备战秋招60天算法挑战,Day15
  • 【学习笔记】Matlab和python双语言的学习(整数规划和0-1规划)
  • 【连续4届EI检索,SPIE 出版】第五届信号处理与计算机科学国际学术会议(SPCS 2024,8月23-25)
  • Vue屏蔽Console.Log打印信息
  • 数据结构之《二叉树》(下)
  • 用Python打造精彩动画与视频,9.3 项目案例分享与反思
  • 分布式主键 详解
  • synchronzed为什么要升级为重量级锁,轻量级锁不好吗?
  • .NET 项目中发送电子邮件异步处理和错误机制的解决方案
  • 如何在银河麒麟操作系统上搭建 Electron (含 Electron 打包指南)
  • 小怡分享之数据结构基础知识准备
  • Linux安全与高级应用(三)深入探索MySQL数据库:安装、管理与安全实践
  • 基于jsp的宠物领养与服务管理系统(源码+论文+部署讲解等)
  • 基于STM32F407+NBIOT+华为云IOT平台设计的环境检测系统
  • 工具方法 - 如何表扬小孩子
  • 【扒模块】DySample