• 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注解定义类的名称在这里插入图片描述
      在这里插入图片描述
  • 相关阅读:
    C++多文件类的声明与实现
    echarts 轴线数据
    vue2通信方法(最全)
    k8s可练习实验分享
    Android Update Engine 分析(二十五)升级状态 prefs 是如何保存的?
    【Cherno的C++视频】Smart pointers in C++
    IPM 鸟瞰图公式转换与推导
    VUE面试题
    30岁本科男,在测试行业干了五年还只会功能测试,难道真的要去送外卖吗?
    国庆北京游玩攻略
  • 原文地址:https://blog.csdn.net/weixin_52477733/article/details/126396392