Spring 读取properties配置文件内容

本文探讨了Spring框架中InitializingBean接口的实现及其在bean初始化中的作用,详细解析了通过@Value注解从配置文件中读取属性并赋值给bean字段的过程。同时,对比了#和$符号在属性引用上的不同。

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

直接上代码

/*

@author wangchaofan

@DESCRIPTION ${DESCRIPTION}

@create 2019/3/28

*/

@Configuration

public class BuildOnlineConfig implements InitializingBean {

 

@Value("${buildonline.litemind.url}")

private String url;

@Value("${fusion.server.address}")

private String fusionAddress;

@Value("${fusion.server.port}")

private int fusionPort;

@Value("${fusion.server.timeout}")

private int fusionTimeout;

@Value("${fusion.server.isDistribute}")

private boolean isDistribute;

@Value("${fusion.server.rpcPort}")

private int rpcPort;

@Value("${fusion.server.restPort}")

private int restPort;

 

public String getUrl() {

return url;

}

 

@Override

public void afterPropertiesSet() throws Exception {

FusionClient.INSTANCE.initialize(fusionAddress, isDistribute, "pyc-cetus-fusion", fusionPort, fusionTimeout, restPort, rpcPort);

}

}

解释:

1、实现InitializingBean类重写after方法

InitializingBean接口为bean提供了初始化方法的方式,它只包括afterPropertiesSet方法,凡是继承该接口的类,在初始化bean的时候都会执行该方法。

从结果可以看出,在Spring初始化bean的时候,如果该bean实现了InitializingBean接口,并且同时在配置文件中指定了init-method,系统则是先调用afterPropertieSet()方法,然后再调用init-method中指定的方法。

2、#和$ 区别

$是从properties中获得

#是从bean中获得

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值