springmvc项目applicationContext.xml读取磁盘properties属性文件

川长思鸟来 2023-06-28 11:30 1阅读 0赞

项目框架:springmvc
开发工具:eclipse
jdk版本:1.7
目的:项目中的applicationContext.xml,bean对象引用磁盘中的properties属性文件,java类中可读取到properties中key对应value,xml可读取到properties中key对应value
示例如下:

applicationContext.xml中读取磁盘中的properties属性文件方法

  1. <bean id="globalProperties" class="com.test.utils.Config">
  2. <property name="order" value="1" />
  3. <property name="ignoreUnresolvablePlaceholders" value="true" />
  4. <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
  5. <property name="ignoreResourceNotFound" value="true" />
  6. <property name="locations" >
  7. <list>
  8. <!--引用classpath下的属性文件-->
  9. <value>classpath:test.properties</value>
  10. <!--引用磁盘中的属性文件,用*表示读取此目录下以.properties的属性文件-->
  11. <value>file:/D:/test/*.properties</value> <!--linux引用磁盘中的属性文件--> <!--<value>file:/home/dev/config/*.properties</value>--> </list> </property> </bean> <context:property-placeholder ignore-unresolvable="true" location="file:/D:/test/datasource.properties"/> <bean id="mysql_test" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="${jdbc.test.url}"/> <property name="username" value="${jdbc.test.username}" /> <property name="password" value="${jdbc.test.password}" /> <!-- mysql其它配置略 --> </bean>

在我的D盘下有test目录,目录下放了几个属性文件
在这里插入图片描述
项目中读取properties中key对应value的方法

  1. package com.test.controller;
  2. import org.springframework.beans.factory.annotation.Value;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.web.bind.annotation.PathVariable;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.ResponseBody;
  7. import data.test.utils.Config;
  8. @Controller
  9. @RequestMapping("/test")
  10. public class TestController {
  11. //方法一: 使用注解方式,读取properties中key对应的value
  12. @Value("${jdbc.test.username}")
  13. private String username;
  14. @RequestMapping("/test")
  15. public @ResponseBody String test(HttpServletRequest request,
  16. HttpServletResponse response){
  17. try {
  18. System.out.println("读取配置文件");
  19. //方法一: 使用springframework的PropertyPlaceholderConfigurer,读取properties中key对应的value
  20. String str = Config.getValue("aaaaaa");
  21. String str2 = Config.getValue("bbbbbb");
  22. String str3 = Config.getValue("cccccc");
  23. String str4 = Config.getValue("dddddd");
  24. System.out.println("项目外部配置文件读取到的变量1="+str);
  25. System.out.println("项目外部配置文件读取到的变量2="+str2);
  26. System.out.println("项目外部配置文件读取到的变量3="+str3);
  27. System.out.println("项目外部配置文件读取到的变量4="+str4);
  28. System.out.println("项目外部配置文件读取到的username="+username);
  29. //输出结果:
  30. //项目外部配置文件读取到的变量1=a111111111111111
  31. //项目外部配置文件读取到的变量2=b1111111111111111111111
  32. //项目外部配置文件读取到的变量3=c111111111111111111111111111111111
  33. //项目外部配置文件读取到的变量4=
  34. //项目外部配置文件读取到的username=zhangsan
  35. } catch (Exception e) {
  36. System.out.println(e.getMessage());
  37. }
  38. return "test";
  39. }
  40. }

Config.java

  1. package com.test.utils;
  2. import java.io.UnsupportedEncodingException;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import java.util.Properties;
  6. import org.springframework.beans.BeansException;
  7. import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
  8. import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
  9. public class Config extends PropertyPlaceholderConfigurer {
  10. private static Map<String, String> globalCode = null;
  11. @Override
  12. protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
  13. throws BeansException {
  14. super.processProperties(beanFactoryToProcess, props);
  15. valuemap = new HashMap<String, String>();
  16. for (Object key : props.keySet()) {
  17. String keyStr = key.toString();
  18. String value = null;
  19. try {
  20. value = new String(props.getProperty(keyStr).getBytes("iso-8859-1"), "UTF-8");
  21. } catch (UnsupportedEncodingException e) {
  22. e.printStackTrace();
  23. }
  24. valuemap.put(keyStr, value);
  25. }
  26. }
  27. public static String getValue(String key) {
  28. return valuemap.get(key)==null?"":valuemap.get(key);
  29. }
  30. }

发表评论

表情:
评论列表 (有 0 条评论,1人围观)

还没有评论,来说两句吧...

相关阅读