Spring如何加载properties文件解析

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

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

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

   
   

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

Spring如何加载properties文件解析_第1张图片

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的配置方式


init-method="init" destroy-method="close">










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核心文件中添加如下:

        
 
 
      
          
            classpath*:/comm.properties  
       
 
   
  


现在在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方法。


你可能感兴趣的:(java,spring,spring,properties,Value)