Spring环境下如何存取properties文件中的数值
创始人
2024-04-07 07:22:11
0

介绍

为避免在JAVA程序中使用Hardcode,我们经常使用一些properties文件存放一些经常变化的数据,在runtime环境下通过配置这些数据来达到灵活配置应用程序。在Spring出现以前我们通常使用resource bundle来实现对properties文件的读取,但在Spring环境下问题变得更加简单,我们只需要写非常少的代码就能实现对 properties文件的随机存取。

ApplicationContext.xml文件配置

ApplicationContext是BeanFactory的扩展,它提供了BeanFactory的所有功能,ApplicationContext允许你通过完全声明的方式配置和管理Spring和Spring管理的资源,本文我提供以下实例:

  1. < ?xml version="1.0" encoding="UTF-8"?> 
  2.   < !DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
  3.   < beans> 
  4.   < bean id="configproperties" 
  5.   class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
  6.   < property name="location" value="file:config.properties"/> 
  7.   < /bean> 
  8.   < bean id="propertyConfigurer" 
  9.   class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
  10.   < property name="properties" ref="configproperties"/> 
  11.   < /bean> 
  12.   < bean id="tjtaskcode" class="TJTaskCode"> 
  13.   < property name="taskcode" value="${TJ.TaskCode}"/> 
  14.   < /bean> 
  15.   < /beans> 

 Config.properties文件的配置

本例中我提供一对简单的数据用于示范:

#Transaction Journal Task Codes

TJ.TaskCode = 1034,1035,1037,1038,1040,1057,1058,1074

TJ.TaskCode是键,1034,1035,1037,1038,1040,1057,1058,1074是值;

Java Bean的定义

定义Java Bean TJTaskCode.Java用于存放所需要的数值:

  1.    public class TJTaskCode {  
  2.   private String taskcode;  
  3.   public void setTaskcode(String taskcode) {  
  4.   this.taskcode = taskcode;  
  5.   }  
  6.   public String getTaskcode() {  
  7.   return this.taskcode;  
  8.   }  
  9.   } 

测试程序TestAccessProperties.java的执行

  1. import org.springframework.context.ApplicationContext;  
  2.   import org.springframework.context.support.ClassPathXmlApplicationContext;  
  3.   import com.td.cc.audit.impl.TJTaskCode;  
  4.   public class TestAccessProperties {  
  5.   public static void main(String[] args) {  
  6.   ApplicationContext context;  
  7.   context = new ClassPathXmlApplicationContext("applicationContext.xml"); 
    TJTaskCode taskcode1 = (TJTaskCode)context.getBean("tjtaskcode");  
  8.   String taskcode2 = taskcode1.getTaskcode();  
  9.   System.out.println(taskcode2);  
  10.   if (taskcode2.indexOf("1034")!=-1) //  
  11.   {  
  12.   System.out.println("Y");  
  13.   } else{  
  14.   System.out.println("N");  
  15.   }  
  16.   }  
  17.   } 

【编辑推荐】

  1. Spring支持EJB的实现
  2. EJB和Spring全面比较
  3. JSF和Spring的集成
  4. 在Spring中进行集成测试
  5. Spring is coming

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...