spring加载一个或者多个properties配置文件方法

在项目中有些参数需要经常修改,或者后期需要修改,比如IP,调用别人的接口地址,数据库地址及帐号密码等,那么我们就不能把这些参数写死在代码里,虽然也可以在代码里改,但是如果是不懂代码的运维人员去现场部署项目又怎么改你的代码,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加方便。

以配置数据库举例:

我们以Spring实例化dataSource为例,一般我们会这样配置:

  
      
      
      
      
 

这样写可以,但是去甲方现场部署项目时,帐号,密码更改了,你就去需要去源代码里改,程序员改起来也方便,但如果是不懂代码的运维人员去部署呢。。。。所以如果使用properties文件的话,只需要修改那里面的即可,就不管源代码的东西了。

先看看properties文件长什么样:

spring加载一个或者多个properties配置文件方法_第1张图片

你只要告诉运维人员这个db.properties文件在什么地方,进去改就可以了,而且一目了然。

那么接下来就是spring怎么去读取一个properties文件,只需要在spring的配置文件applicationContext.xml加上:

 
 


		
		
		
	

注意:classpath;db.properties这里的地址别写错了,不然会报java.io.FileNotFoundException,文件找不到错误,以我的项目为例(maven项目),截图项目目录层级,做参考

spring加载一个或者多个properties配置文件方法_第2张图片

以上是引入一个properties文件的例子,那如果引入两个properties文件怎么办呢

标签也可以用标签来代替,标签我们更加熟悉,可读性更强:

当存在多个Properties文件时,配置就需使用locations了,接下来我们要使用多个PropertyPlaceholderConfigurer来分散配置,来整合工程下的多个分散的Properties文件

举例,项目中既要引入数据库配置文件---->db.proerties文件,也要引入redies相关配置文件---->redies-config.properties

其中order属性代表其加载顺序,而ignoreUnresolvablePlaceholders为是否忽略不可解析的Placeholder,如配置了多个properties,则需设置为true

  
	      
	      
	      
	       
	         
	        classpath:db.properties 
	          
	        classpath:redis-config.properties  
	        
	      
	

dataSource的配置不变,还是这样配


		
		
		

	

接下来redies读取的redies-conifg.properties文件了,这里只是举例子说明多个properties怎么配置加载,下面redies的参数配置就不多说明了。

  
       
           
              
                
                  
                  
                       
                       
                     
                
              
           
       
     
     
         
     
           
         
            
           
         
           
       

       
  
       
           
      




你可能感兴趣的:(JAVA,java,springMVC,spring,db.properties,linux)