Spring之更便捷的读取和存储对象

简洁的Spring读取和存储对象方式

存储Bean对象

相较于通过创建上下文,获取上下文后将bean对象存储到Spring容器这种方式,使用注解更加方便.

前置工作——配置扫描路径

在使用注解前,我们需要配置扫描待添加注解的文件位置.
在这里插入图片描述

存储Bean对象的注解

将bean对象存储到Spring中的注解可以分为两种类型

  1. 类注解:@Controller,@Service,@Repository,@Component,@Configuration
  2. 方法注解:@Bean
类注解

@Controller:控制器存储
在这里插入图片描述
@Service:服务存储
在这里插入图片描述
@Repository:仓库存储
在这里插入图片描述
@Component:组建存储
在这里插入图片描述

@Configuration
在这里插入图片描述
从上述的使用过程中可以看到每一个注解的使用方式都是类似的.但为什么还需要这么多的注解呢? 为了让程序员能够更直观地了解每一个类的用途
程序的工程分层如下:在这里插入图片描述
通过图可以看到@Configuration是负责配置文件的控制,@Controller是负责验证前端传来的参数,@Service是负责处理前端传来的参数,@Repository是负责存储前端传来的参数,并和数据库进行交互.而@Component则负责一些工具类.
在这五种类注解中,@Component是其他所有注解的父类.

方法注解

方法注解@Bean,顾名思义涵盖的对象是一个具体的方法.但单纯使用@Bean是无法将bean对象存储到Spring中的,需要搭配类注解共同使用
在使用@Bean时,我们可以设置name属性给bean对象重命名
在这里插入图片描述在这里插入图片描述

读取Bean对象

属性注入——Autowired

利用@Autowired注解将对象以属性的形式注入在这里插入图片描述

构造方法注入

利用@Autowired将对象以构造方法的形式注入
在这里插入图片描述

Setter注入

利用@Autowired将对象以Setter形式注入
在这里插入图片描述
三种注入方式的对比

  1. 属性注入最简洁,使用方便.缺点是只适用于IoC容器,对于非IoC容器,在运行时会报空指针异常.
  2. 构造方法注入:Spring最推荐的一种注入方式,通用性强,在使用前保证注入的类不为空.缺点是当存在多个注入时会造成构造方法的臃肿
  3. Setter方法注入:Spring早期推荐的一种注入方式.在通用性方面不如构造方法

Autowired和Resources的区别

在进行类注入时,除了@Autowired以外,还有了另外一种注解@Resources.
二者的区别

  1. Autowired来自于Spring,Resources来自于jdk
  2. Autowired注解几乎不支持参数设置,而Resources支持更多的参数设置.这也意味着当一个类中使用多个@Bean存储同一个类对象时,在另一个类中如果只使用@Autowired会报错.解决方式是用@Resources注解搭配参数name属性去指定注入的对象.也可以使用@Qualifier去弥补@Autowired注解参数的问题:利用@Qualifier注解定义类的名称在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

囚蕤

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

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

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

打赏作者

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

抵扣说明:

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

余额充值