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


目录
打赏
0
0
0
0
2
分享
相关文章
|
20天前
|
Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)
Spring 第三节 IOC——基于注解配置和管理Bean 万字详解!
113 26
Spring 集成 DeepSeek 的 3大方法(史上最全)
DeepSeek 的 API 接口和 OpenAI 是兼容的。我们可以自定义 http client,按照 OpenAI 的rest 接口格式,去访问 DeepSeek。自定义 Client 集成DeepSeek ,可以通过以下步骤实现。步骤 1:准备工作访问 DeepSeek 的开发者平台,注册并获取 API 密钥。DeepSeek 提供了与 OpenAI 兼容的 API 端点(例如),确保你已获取正确的 API 地址。
Spring 集成 DeepSeek 的 3大方法(史上最全)
【Spring】方法注解@Bean,配置类扫描路径
@Bean方法注解,如何在同一个类下面定义多个Bean对象,配置扫描路径
183 73
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
75 6
Spring的使用-Bean对象的储存和获取/Bea对象的作用域与生命周期
Spring的使用-Bean对象的储存和获取/Bea对象的作用域与生命周期
【Spring原理探索】深入认识对象生命周期之BeanPostProcessor
【Spring原理探索】深入认识对象生命周期之BeanPostProcessor
165 0
【Spring原理探索】深入认识对象生命周期之BeanPostProcessor

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等