SpringMVC加载配置Properties文件的几种方式

最近开发的项目使用了SpringMVC的框架,用下来感觉SpringMVC的代码实现的非常优雅,功能也非常强大,

网上介绍Controller参数绑定、URL映射的文章都很多了,写这篇博客主要总结一下SpringMVC加载配置Properties文件的几种方式

 

1.通过context:property-placeholde实现配置文件加载

  1.1、在spring.xml中加入context相关引用

[html] view plain copy

 

 

  1.   
  2.  xmlns:context="http://www.springframework.org/schema/context"  
  3.  xsi:schemaLocation="http://www.springframework.org/schema/beans  
  4.       http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
  5.       http://www.springframework.org/schema/context  
  6.       http://www.springframework.org/schema/context/spring-context.xsd">  

 

 1.2、引入jdbc配置文件         

 

[html] view plain copy

 

 

  1.   

 

1.3、jdbc.properties的配置如下

   

[html] view plain copy

 

 

  1. jdbc_driverClassName=com.mysql.jdbc.Driver  
  2. jdbc_url=jdbc:mysql://localhost/testdb?useUnicode=true&characterEncoding=utf8  
  3. jdbc_username=root  
  4. jdbc_password=123456  

 

1.4、在spring-mybatis.xml中引用jdbc中的配置

 

[html] view plain copy

 

 

  1.    destroy-method="close" >  
  2.      
  3.      ${jdbc_driverClassName}  
  4.      
  5.      
  6.      ${jdbc_url}  
  7.      
  8.      
  9.      ${jdbc_username}  
  10.      
  11.      
  12.      ${jdbc_password}  
  13.      
  14.      
  15.      
  16.      20  
  17.      
  18.      
  19.      
  20.      1  
  21.      
  22.      
  23.      
  24.      60000  
  25.      
  26.      
  27.      
  28.      20  
  29.      
  30.      
  31.      
  32.      3  
  33.      
  34.      
  35.      
  36.      true  
  37.      
  38.      
  39.      
  40.      180  
  41.      
  42.      
  43.      
  44.      clientEncoding=UTF-8  
  45.      
  46.    


 

 

1.5、在java类中引用jdbc.properties中的配置

 

[html] view plain copy

 

 

  1. import org.springframework.beans.factory.annotation.Value;  
  2. import org.springframework.context.annotation.Configuration;  
  3.   
  4.   
  5.    
  6. @Configuration   
  7. public class JdbcConfig{      
  8.       
  9.     @Value("${jdbc_url}")  
  10.     public  String jdbcUrl; //这里变量不能定义成static  
  11.       
  12.     @Value("${jdbc_username}")  
  13.     public  String username;    
  14.       
  15.     @Value("${jdbc_password}")  
  16.     public  String password;    
  17.        
  18. }  


 

 

1.6、在controller中调用

   

[html] view plain copy

 

 

  1. @RequestMapping("/service/**")  
  2. @Controller  
  3. public class JdbcController{  
  4.    
  5.          @Autowired  
  6.      private JdbcConfig Config; //引用统一的参数配置类  
  7.   
  8.          @Value("${jdbc_url}")  
  9.          private String jdbcUrl; //直接在Controller引用  
  10.          @RequestMapping(value={"/test"})   
  11.         public ModelMap test(ModelMap modelMap) {   
  12.                modelMap.put("jdbcUrl", Config.jdbcUrl);  
  13.                return modelMap;   
  14.           }  
  15.          @RequestMapping(value={"/test2"})  
  16.      public ModelMap test2(ModelMap modelMap) {   
  17.            modelMap.put("jdbcUrl", this.jdbcUrl);  
  18.            return modelMap;  
  19.      }   
  20. }  

 

 

1.7、测试

 

在ie中输入http://localhost:8080/testWeb/service/test 或http://localhost:8080/testWeb/service/test2  

 

返回如下结果:

[java] view plain copy

 

 

  1. {   
  2.     jdbcUrl:"jdbc:mysql://localhost/testdb?useUnicode=true&characterEncoding=utf8"  
  3. }  

 

 

 

 

 

注:通过context:property-placeholde加载多个配置文件

 

 只需在第1.2步中将多个配置文件以逗号分隔即可 

[html] view plain copy

 

 

  1.   
 

 

2、通过util:properties实现配置文件加载

 

 

 2.1、在spring.xml中加入util相关引用

[html] view plain copy

 

 

  1.   
  2.  xmlns:context="http://www.springframework.org/schema/context"  
  3.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.  xmlns:util="http://www.springframework.org/schema/util"  
  5.  xsi:schemaLocation="http://www.springframework.org/schema/beans  
  6.       http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
  7.       http://www.springframework.org/schema/context  
  8.       http://www.springframework.org/schema/context/spring-context.xsd  
  9.       http://www.springframework.org/schema/util  
  10.       http://www.springframework.org/schema/util/spring-util-4.0.xsd">  

2.2、 引入config配置文件  

[html] view plain copy

 

 

  1.   

 

2.3、config.properties的配置如下 

[html] view plain copy

 

 

  1. gnss.server.url=http://127.0.0.1:8080/gnss/services/data-world/rest  

 

 

 

2.4、在java类中引用config中的配置   

[html] view plain copy

 

 

  1. import org.springframework.beans.factory.annotation.Value;  
  2. import org.springframework.stereotype.Component;  
  3.   
  4. @Component  
  5. public class Config {   
  6.       @Value("#{settings['gnss.server.url']}")    
  7.       public  String GNSS_SERVER_URL;   
  8.    
  9. }  

2.5、在controller中调用

 

[html] view plain copy

 

 

  1. @RequestMapping("/service2/**")  
  2. @Controller  
  3. public class ConfigController{  
  4.    
  5.          @Autowired  
  6.      private Config Config; //引用统一的参数配置类  
  7.   
  8.          @RequestMapping(value={"/test"})  
  9.      public ModelMap test(ModelMap modelMap) {   
  10.         modelMap.put("gnss.service.url",Config.GNSS_SERVER_URL);  
  11.             return modelMap;  
  12.       }   
  13. }  


 

 

2.6、测试

在ie中输入http://localhost:8080/testWeb/service2/test

 

返回如下结果:

 

[html] view plain copy

 

 

  1. {  
  2.    "gnss.service.url":"http://127.0.0.1:8080/gnss/services/data-world/rest"  
  3. }  


 

 

3.直接在Java类中通过注解实现配置文件加载

3.1、在java类中引入配置文件

 

[java] view plain copy

 

 

  1. import org.springframework.beans.factory.annotation.Value;  
  2. import org.springframework.context.annotation.Configuration;  
  3. import org.springframework.context.annotation.PropertySource;  
  4.   
  5. @Configuration  
  6. @PropertySource(value="classpath:config.properties")    
  7. public class Config {   
  8.    
  9. @Value("${gnss.server.url}")   
  10. public  String GNSS_SERVER_URL;  
  11.   
  12. @Value("${gnss.server.url}")   
  13. public  String jdbcUrl;   
  14.   
  15. }  

3.2、在controller中调用

 

[java] view plain copy

 

 

  1. @RequestMapping("/service2/**")  
  2. @Controller  
  3. public class ConfigController{  
  4.    
  5.          @Autowired  
  6.      private Config Config; //引用统一的参数配置类  
  7.   
  8.           @RequestMapping(value={"/test"})  
  9.      public ModelMap test(ModelMap modelMap) {   
  10.         modelMap.put("gnss.service.url", Config.GNSS_SERVER_URL);  
  11.             return modelMap;  
  12.      }   

}

 

 

3.3、测试

在ie中输入http://localhost:8080/testWeb/service2/test

 

返回如下结果:

[java] view plain copy

 

 

  1. {  
  2.    "gnss.service.url":"http://127.0.0.1:8080/gnss/services/data-world/rest"  
  3.  }  

 

 
 

最后附上spring.xml的完整配置:

 

[html] view plain copy

 

 

  1.   
  2.  xmlns:context="http://www.springframework.org/schema/context"  
  3.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.  xmlns:util="http://www.springframework.org/schema/util"  
  5.  xsi:schemaLocation="http://www.springframework.org/schema/beans  
  6.       http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  
  7.       http://www.springframework.org/schema/context  
  8.       http://www.springframework.org/schema/context/spring-context.xsd  
  9.       http://www.springframework.org/schema/util  
  10.       http://www.springframework.org/schema/util/spring-util-4.0.xsd">  
  11.   
  12.       
  13.       
  14.   
  15.        
  16.          
  17.        
  18.        
  19.         
  20.        

你可能感兴趣的:(框架)