Spring让读取和存储Bean更加简单(下篇)——使用注解获取Bean对象

本文详细介绍了在Spring中如何使用注解进行Bean对象的读取,包括属性注入、构造方法注入和Setter注入,强调了@Autowired和@Resource注解的区别,并分析了不同注入方式的特点。适合了解Spring Bean装配的读者阅读。

⭐️前面的话⭐️

本篇文章将介绍使用Spring获取已经储存在Spring容器中的对象,注入的方式有三种,分别为属性注入,构造方法注入(目前官方推荐),Setter方法注入(老版本Spring官方推荐)。

📒博客主页:未见花闻的博客主页
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📌本文由未见花闻原创,CSDN首发!
📆首发时间:🌴2022年7月29日🌴
✉️坚持和努力一定能换来诗与远方!
💭推荐书籍:📚《Spring实战》
💬参考在线编程网站:🌐牛客网🌐力扣
博主的码云gitee,平常博主写的程序代码都在里面。
博主的github,平常博主写的程序代码都在里面。
🍭作者水平很有限,如果发现错误,一定要及时告知作者哦!感谢感谢!



封面区


1.前言

前面我们已经介绍了如何使用注解将对象储存到Spring中,你把对象储存到Spring中了,如果你想使用这些对象,还得从Spring中取出来,最开始介绍Spring的时候,已经介绍过使用上下文和Bean工厂来获取对象,本文将介绍使用注解来实现对象的读取。

使用注解可以直接将已经储存的对象取出来,直接赋值到注解所在类的一个属性中,这一个过程也叫做对象的装配或者叫对象的注入。

2.使用注解获取Bean

2.1对象注入的概念

获取 bean 对象也叫做对象装配,就是把对象取出来放到某个类中,有时候也叫对象注入。
对象装配(对象注入)的实现方法以下 3 种:

  1. 属性注入 ,就是将对象注入到某个类的一个属性当中。
  2. 构造方法注入 ,就是通过构造方法来将对象注入到类中。
  3. Setter方法 注入 ,通过SetXXX系列方法将对象注入到类中。

常见有关对象注入的注解有两个,一个是@Autowired,另外一个是@Resource,其中@Autowired支持属性注入,构造方法注入和Setter注入,@Resource支持属性注入和Settter注入,但是不支持构造方法注入。

说到这里,我们来说一说@Autowired与@Resource的区别吧,两者的区别有:

  • 前面说的,@Autowired支持属性注入,构造方法注入和Setter注入,@Resource支持属性注入和Settter注入,但是不支持构造方法注入。
  • @Autowired是Spring提供的,@Resource是JDK提供的。
  • @Resource支持更多的参数设置,如name type等,而@Autowired只支持设置required参数。

2.2属性注入

属性注入很简单,我们只需要在需要注入对象的属性上加上@Autowired或者@Resource注解就可以了,我们以@Autowired为例。

第一种情况,待注入的同类对象只有一个,这时我们直接使用@Autowired注解就好,不必设置参数,例如我们在UserController类里面注入UserService对象。

UserService类结构:

@Service
public class UserService {
   
   
    public void sayHi() {
   
   
        System.out.println("你好! Service");
    }
}

属性注入:

@Controller
public class UserController1 {
   
   
    //属性注入
    @Autowired
    private UserService service;

    public void sayHi() {
   
   
        service.sayHi();
    }
}

然后我们就可以在启动类中,使用上下文对象来获取UserController1对象,通过执行UserController1对象的sayHi方法来间接执行UserService对象的sayHi方法,这样我们就不用new一个UserService对象了。

public class Main6 {
   
   
    public
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未见花闻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值