关于Spring 中初始化bean的过程

本文记录了一次在北京出差期间遇到的Spring框架中Bean初始化的问题及解决过程。作者在使用带有属性注入的Bean时发现属性值始终为null,最终通过调整构造函数参数解决了问题。

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


这些天在北京出差,项目比较紧,每天都要加班,虽然累,但同时觉得比较充实,挺好的人生体验。大笑


今天碰到一个问题,代码如下:


<bean id="playChannel" class="com.kindroid.d3.AppServer.core.channel.iscm.PlayChannelImpl">
		<property name="url" value="${stream.url}"/>
		<property name="port" value="${stream.port}"/>
</bean>

结果我在PlayChannelImpl的构造函数中,使用url和port的时候,居然一直是null,这个折腾了好一会,最后做了判断可能是bean在初始化的时候,执行的顺序不同,因此找了些资料,结果如下:


第一步:执行构造函数

第二步:在有了对象之后,set  property

第三步:init-method

等等.....

其实这个应该很容易想到,构造函数之前,对象都不存在,去哪里setProperty呢?犯二了偷笑

解决方法也比较简单:


<constructor-arg> 标签 替代<property>

constructor-arg 表示作为构造函数的参数使用


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值