Spring环境下如何存取properties文件中的数值

开发 后端
本文介绍Spring环境下如何存取properties文件中的数值,以及ApplicationContext.xml文件配置等。

介绍

为避免在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
责任编辑:佚名 来源: IT专家网
相关推荐

2023-11-01 08:30:20

SpringYAML

2009-05-25 15:17:40

C++随机存取文件

2011-03-28 10:42:00

Spring

2010-03-26 15:14:20

Linux系统环境

2011-04-11 15:11:37

UbuntuGCC

2009-12-10 09:42:07

2016-09-18 16:58:09

JavaProperties

2009-06-17 14:36:10

SpringXML配置文件

2009-01-03 14:39:04

ibmdwDojoMVC

2011-11-08 13:46:44

静态文件Nginx优化

2010-02-23 14:10:56

2011-09-07 13:11:01

Ubuntuxorg.conf

2011-09-09 17:23:53

CentOSLAMPmysql

2013-05-27 10:58:10

propertiesJava语言

2024-07-26 08:53:09

前端参数后端

2009-09-27 10:28:12

Hibernate.p

2010-07-27 14:25:02

linux文件编码

2011-08-29 18:02:29

SQL Server FileStream

2009-12-16 10:41:37

Ruby随机存取文件

2017-08-24 18:22:25

公有云私有云混合云
点赞
收藏

51CTO技术栈公众号