对象注入的几种方式

⭐ 作者:小胡_不糊涂
🌱 作者主页:小胡_不糊涂的个人主页
📀 收录专栏:JavaEE
💖 持续更文,关注博主少走弯路,谢谢大家支持 💖

1. 属性注入

属性注入是使用 @Autowired 实现的,将 Service 类注⼊到 Controller 类中:

在这里插入图片描述

2. 构造方法注入

构造方法注⼊是在类的构造方法中实现注⼊,如下所⽰:

在这里插入图片描述
注意: 如果类只有⼀个构造⽅法,那么 @Autowired 注解可以省略;如果类中有多个构造⽅法,那么需要添加上 @Autowired 来明确指定到底使⽤哪个构造⽅法

3. Setter 注入

Setter 注入和属性的 Setter ⽅法实现类似,只不过在设置 set ⽅法的时候需要加上 @Autowired 注解 ,如下所示:

在这里插入图片描述

4. 优缺点

  1. 属性注入
    优点:简洁,使用方便;
    缺点:只能用于 IoC 容器,如果是非 IoC 容器不可用,并且只有在使用的时候才会出现 NPE(空指针异常)。
  2. 构造方法注入是 Spring 推荐的注入方式
    优点:通用性,在使用之前一定能把保证注入的类不为空;
    缺点:如果有多个注入会显得比较臃肿,但出现这种情况你应该考虑一下当前类是否符合程序的单一职责的设计模式了。
  3. Setter 方式是 Spring 前期版本推荐的注入方式,但通用性不如构造方法,所有 Spring 现版本已经推荐使用构造方法注入的方式来进行类注入了。

相关推荐

  1. 对于IOC注入方式注解和XML)

    2024-03-12 07:44:03       35 阅读
  2. vue遍历对象方式

    2024-03-12 07:44:03       57 阅读
  3. js判断对象是否为空方法

    2024-03-12 07:44:03       40 阅读
  4. asp.net core 自定义过滤器 注入方式和实现

    2024-03-12 07:44:03       33 阅读
  5. PEFT方式

    2024-03-12 07:44:03       21 阅读
  6. 【Delphi 基础知识 17】注释代码方法

    2024-03-12 07:44:03       54 阅读
  7. Spring中依赖注入(DI)方法使用

    2024-03-12 07:44:03       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 07:44:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 07:44:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 07:44:03       82 阅读
  4. Python语言-面向对象

    2024-03-12 07:44:03       91 阅读

热门阅读

  1. android JNI float *转MutableList

    2024-03-12 07:44:03       45 阅读
  2. ArrayList与LinkedList的区别

    2024-03-12 07:44:03       49 阅读
  3. django中的QuerySet

    2024-03-12 07:44:03       41 阅读
  4. TypeScript之枚举

    2024-03-12 07:44:03       44 阅读
  5. 如何用prompt提示词开发Open AI项目?

    2024-03-12 07:44:03       47 阅读
  6. Prompt提示词工程构建指南

    2024-03-12 07:44:03       39 阅读
  7. 牛客周赛 Round 36----->C.小红的白色字符串

    2024-03-12 07:44:03       44 阅读
  8. SQLite表添加主键

    2024-03-12 07:44:03       40 阅读
  9. stl-list

    2024-03-12 07:44:03       44 阅读
  10. python-0001-安装虚拟环境

    2024-03-12 07:44:03       40 阅读