Spring如何加载properties文件解析

1 篇文章 0 订阅

在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加方便。在Spring中也可以这么做,而且Spring有两种加载properties文件的方式:基于xml方式和基于注解方式。下面分别讨论下这两种方式。

1. 通过xml方式加载properties文件

在spring-config.xml核心文件中添加如下,有的也叫applicationContext.xml。

    <!-- 数据源配置 -->
    <context:property-placeholder location="classpath:jdbc.properties,classpath:redis.properties" />

我这里有两个配置文件jdbc.properties和redis.properties两个文件,

jdbc.properties内容如下:

#jdbc.driverName=com.mysql.jdbc.Driver
jdbc.driverName=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
jdbc.dbType=mysql
jdbc.url=jdbc:mysql://192.168.8.60:3306/user?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
jdbc.user=root

jdbc.pwd=123456
jdbc.testSql=SELECT 'x' FROM DUAL

这里只说明jdbc.properties的配置方式

<!-- 数据源配置 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="driverClassName" value="${jdbc.driverName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.user}" />
<property name="password" value="${jdbc.pwd}" />
<property name="initialSize" value="0" />
<property name="maxActive" value="20" />
<property name="minIdle" value="2" />
<property name="maxWait" value="30000" />
<property name="validationQuery" value="${jdbc.testSql}" />
</bean>

2. 通过注解方式加载properties文件(在代码中推荐第二种)

还有一种就是通过注解的方式,在java代码中使用@Value注解来加载配置文件中的值。

        我们来看一个例子:假如我们要在程序中获取某个文件的绝对路径,我们很自然会想到不能在程序中写死,那么我们也可以写在properties文件中。还是在resources目录下新建一个public.properties文件,假设里面写了多条记录:

#solr服务器访问路径(以后很有可能有多可solrcore)
SOLR_URL=http://localhost:8888/solr/solr_core/
#增量更新参数dataimport固定不变    command=delta-import表示增量从mysql更新数据到solr  command=full-import表示全量从mysql更新数据到solr 
#entity=document表示要更新的entity的name,但是注意此名称非java中实体类的名称,而是solr_core中data-config.xml中的name 
#clean=false  表示增量不清空solr中数据    true表示清空数据   但是全量更新是true
#commit=true  提交必须是true
SOLR_PARAM=/dataimport?command=delta-import&entity=document&clean=false&commit=true
如果想在java代码中获取此路径,在spring-config.xml核心文件中添加如下:

      <!-- 使用注解的方式注入,主要用在java代码中使用注解注入properties文件中相应的value值 -->  
<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
<property name="ignoreResourceNotFound" value="true"/> 
    <property name="locations">  
        <list>  
            <value>classpath*:/comm.properties</value>  
        </list> 
    </property>  
</bean>


现在在java代码中获取此路径(我的是在service实现类里面会有@Service,如果不是可以添加@Component ):

@Value("#{configProperties['SOLR_URL']}")
 private  String solr_url;
@Value("#{configProperties['SOLR_PARAM']}")
 private  String solr_param;
    

public String getSolr_url() {
return solr_url;
}
public void setSolr_url(String solr_url) {
this.solr_url = solr_url;
}
public String getSolr_param() {
return solr_param;
}
public void setSolr_param(String solr_param) {
this.solr_param = solr_param;
}

注意:一定要加上get/set方法。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小盒子_spring

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值