spring - property和constructor-arg的使用

本文介绍了如何在Spring中使用property和constructor-arg进行配置。首先展示了配置文件zy.properties的内容,包括阿里云OSS的相关参数。接着在applicationContext.xml中连接到该properties文件,并进一步连接到applicationContext-support.xml。在support配置文件中,详细说明了constructor-arg的使用,它用于指定类构造函数的参数,通过index和value匹配代码中的类属性。最后,展示了对应的AliyunOssSupport类,其构造函数参数与XML配置一一对应。

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

第一,配置文件名:zy.properties

 

zy.properties中配置的信息

aliyun.ossEndpoint=http://oss-cn-hangzhou.aliyuncs.com
aliyun.ossGroup=ceshi
aliyun.accessKeyId=abdkkcc
aliyun.accessKeySecret=ceshiceshiceshiceshi
 

第二,applicationContext.xml中首先连接到zy.properties然后连接到applicationContext-support.xml

配置如下:

<context:property-placeholder location="file:${user.home}/zy.properties" />
<import resource="classpath:applicationContext-support.xml"/>

 

第三,applicationContext-support.xml(这是配置文件)

applicationContext-support.xml中的配置信息:     

<bean id="aliyunOssSupport" class="com.zy.common.support.AliyunOssSupport">
   <constructor-arg index="0" value="${aliyun.ossEndpoint}"/>
   <constructor-arg index="1" value="${aliyun.accessKeyId}"/>
   <constructor-arg index="2" value="${aliyun.accessKeySecret}"/>
   <constructor-arg index="3" value="${aliyun.ossGroup}"/>
</bean>

注意:constructor-arg代表是类的构造参数,index后面的值代表第几个参数,这个是严格按照顺序的。

            value就是参数值,实际就是属性值。class指的就是代码中映射的类。

第四,代码中的类(AliyunOssSupport ),示例:

           

public class AliyunOssSupport implements DisposableBean {
   private final String DEFAULT_ENDPOINT = "http://oss-cn-hangzhou.aliyuncs.com";
   private final OSSClient ossClient;
   private String group;

   public AliyunOssSupport(String endpoint, String accessKeyId, String accessKeySecret, String group) {
      if(endpoint == null)
         endpoint = DEFAULT_ENDPOINT;

      ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
      this.group=group;
   }

注意:代码中的有参构造函数有四个参数,对应applicationContext-support.xml配置的四个参数。并严格按照顺序。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值