@Value 注入属性值(下)

本文探讨了Spring框架中@Value注解的工作原理及其在Bean生命周期中的作用时机。特别是介绍了如何利用InstantiationAwareBeanPostProcessor接口的postProcessPropertyValues方法来实现属性值的注入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@Value 注入属性值(下)

之前试验过@Value是在<init>对象实例化后,在注入属性(即调用类的set方法实现属性的初始化)前其作用的。
具体是如何起作用以及是什么时候其作用的。
下图是spring中一个bean的生命周期:


这里写图片描述

<init>对象实例化即时途中的“实例化”那一步。

注入属性即时图中的“设置属性值”。

那么@Value的作用时间可能在第三步或事第四步

public interface InstantiationAwareBeanPostProcessor extends BeanPostProcessor {
    Object postProcessBeforeInstantiation(Class<?> var1, String var2) throws BeansException;
​    boolean postProcessAfterInstantiation(Object var1, String var2) throws BeansException;
​    PropertyValues postProcessPropertyValues(PropertyValues var1, PropertyDescriptor[] var2, Object var3, String var4) throws BeansException;
}

InstantiationAwareBeanPostProcessor是BeanPostProcessor的子接口
postProcessPropertyValues方法可以扫描带有注解的字段和方法,并注入到Bean中
所以通过@Value注解注释的属性 就是在第四步中通过InstantiationAwareBeanPostProcessor的postProcessPropertyValues方法注入到bean中的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值