Spring中获取Bean对象的三种注入方式和两种注入方法

简介: Spring中获取Bean对象的三种注入方式和两种注入方法

前言

获取 bean 对象也叫做对象装配,是把对象取出来放到某个类中,有时候也叫对象注⼊。

对象装配(对象注⼊)的实现⽅法以下 3 种:属性注⼊、构造⽅法注⼊、Setter 注⼊。

下面例子均是将 Service 类注⼊到 Controller 类中。

获取Bean对象的三种注入方式

属性注⼊

属性注⼊是使⽤@Autowired 实现的,将 Service 类注⼊到 Controller 类中。

Service 类的实现代码如下:


Controller 类的实现代码如下:

获取 Controller 中的 getUser ⽅法:


执行结果如下:

属性注⼊的核⼼实现如下:


构造⽅法注⼊

注意:如果当前类中只有一个构造方法,那么@Autowired 注解可以省略。

Setter 注⼊


属性注⼊、构造⽅法注⼊和Setter 注⼊有什么区别呢?

1.属性注入的特点就是写法简单,但是通用性不好,它只能运行在IoC容器下,如果是非IoC容器就会出现问题。

2.Setter注入是早期Spring版本的推荐写法,但是Setter注入通用性没有构造方法注入的通用性好,所以现在Spring官方推荐的是构造方法注入。

3.构造方法注入:通用性更好,它能确保在使用注入对象之前,此时这个注入对象一定是初始化过了。当构造方法注入参数过多时,此时开发者就要检查自己所写的代码是否符合单一设计原则的规范了,这种注入方式也是Spring后期官方推荐的注入方式。


两种注入方法

在进⾏类注⼊时,除了可以使⽤@Autowired 关键字之外,我们还可以使⽤ @Resource 进⾏注⼊,如下代码所示:


那么@Autowired 和 @Resource 有什么区别呢?

注意:@Resource只支持属性注入和Setter注入,不支持构造方法注入。


1.@Autowired 和 @Resource的出身不同:@Resource来自于JDK(java的亲儿子),而@Autowired是Spring框架提供的。

2.用法不同:@Autowired三种注入方式都支持,但是@Resource不支持构造方法注入。

3.支持的参数不同:@Resource支持更多的参数设置,比如name、type等,而@Autowired只支持required参数设置。


1495f18c930b46c6a6e58f7477039100.png


相关文章
|
6天前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
33 6
|
8天前
|
XML Java 数据格式
🌱 深入Spring的心脏:Bean配置的艺术与实践 🌟
本文深入探讨了Spring框架中Bean配置的奥秘,从基本概念到XML配置文件的使用,再到静态工厂方式实例化Bean的详细步骤,通过实际代码示例帮助读者更好地理解和应用Spring的Bean配置。希望对你的Spring开发之旅有所助益。
52 3
|
18小时前
|
Java Spring
【Spring】方法注解@Bean,配置类扫描路径
@Bean方法注解,如何在同一个类下面定义多个Bean对象,配置扫描路径
|
18小时前
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
|
18小时前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
|
7月前
|
存储 Java 数据库
Spring的使用-Bean对象的储存和获取/Bea对象的作用域与生命周期
Spring的使用-Bean对象的储存和获取/Bea对象的作用域与生命周期
|
设计模式 前端开发 Java
Spring Bean对象生命周期
Spring Bean对象生命周期
416 0
|
存储 Java Spring
【Spring原理探索】深入认识对象生命周期之BeanPostProcessor
【Spring原理探索】深入认识对象生命周期之BeanPostProcessor
143 0
【Spring原理探索】深入认识对象生命周期之BeanPostProcessor
|
Java Maven 开发者
Spring 对象生命周期示例|学习笔记
快速学习Spring 对象生命周期示例
129 0
Spring 对象生命周期示例|学习笔记
|
Java Spring 容器
Spring框架:第三章:对象的生命周期及单例bean生命周期的11个步骤
Spring框架:第三章:对象的生命周期及单例bean生命周期的11个步骤
125 0