Spring環(huán)境下如何存取properties文件中的數(shù)值
介紹
為避免在JAVA程序中使用Hardcode,我們經(jīng)常使用一些properties文件存放一些經(jīng)常變化的數(shù)據(jù),在runtime環(huán)境下通過配置這些數(shù)據(jù)來達到靈活配置應(yīng)用程序。在Spring出現(xiàn)以前我們通常使用resource bundle來實現(xiàn)對properties文件的讀取,但在Spring環(huán)境下問題變得更加簡單,我們只需要寫非常少的代碼就能實現(xiàn)對 properties文件的隨機存取。
ApplicationContext.xml文件配置
ApplicationContext是BeanFactory的擴展,它提供了BeanFactory的所有功能,ApplicationContext允許你通過完全聲明的方式配置和管理Spring和Spring管理的資源,本文我提供以下實例:
- < ?xml version="1.0" encoding="UTF-8"?>
- < !DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
- < beans>
- < bean id="configproperties"
- class="org.springframework.beans.factory.config.PropertiesFactoryBean">
- < property name="location" value="file:config.properties"/>
- < /bean>
- < bean id="propertyConfigurer"
- class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
- < property name="properties" ref="configproperties"/>
- < /bean>
- < bean id="tjtaskcode" class="TJTaskCode">
- < property name="taskcode" value="${TJ.TaskCode}"/>
- < /bean>
- < /beans>
Config.properties文件的配置
本例中我提供一對簡單的數(shù)據(jù)用于示范:
#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用于存放所需要的數(shù)值:
- public class TJTaskCode {
- private String taskcode;
- public void setTaskcode(String taskcode) {
- this.taskcode = taskcode;
- }
- public String getTaskcode() {
- return this.taskcode;
- }
- }
測試程序TestAccessProperties.java的執(zhí)行
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import com.td.cc.audit.impl.TJTaskCode;
- public class TestAccessProperties {
- public static void main(String[] args) {
- ApplicationContext context;
- context = new ClassPathXmlApplicationContext("applicationContext.xml");
TJTaskCode taskcode1 = (TJTaskCode)context.getBean("tjtaskcode");- String taskcode2 = taskcode1.getTaskcode();
- System.out.println(taskcode2);
- if (taskcode2.indexOf("1034")!=-1) //
- {
- System.out.println("Y");
- } else{
- System.out.println("N");
- }
- }
- }
【編輯推薦】