Synchronized로 검색한 결과 :: 시소커뮤니티[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

회원가입 I 비밀번호 찾기


SSISO Community검색
SSISO Community메뉴
[카페목록보기]
[블로그등록하기]  
[블로그리스트]  
SSISO Community카페
블로그 카테고리
정치 경제
문화 칼럼
비디오게임 스포츠
핫이슈 TV
포토 온라인게임
PC게임 에뮬게임
라이프 사람들
유머 만화애니
방송 1
1 1
1 1
1 1
1 1
1

Synchronized로 검색한 결과
등록일:2008-03-10 16:07:22
작성자:
제목:프로퍼티 설정하기


작성자  :  장형화(hhjang97@venus.uos.ac.kr)
작성일  :  2004.  12.  30
수정일  :  
    2006.  03.  17  :  TestProperty    소스  추가
    2005.  01.  05  :  환경  변수  이용한  방법  추가


원본  :
설명  :

Property  파일에  프로그램에  사용하는  모든  변수를  설정한다.
환경마다  변화는  정보는  db.property  와  같이  파일을  만들고  사용하면  된다.

db.property  파일의  위치는  2개로  나눌수  있다.

    1)  Property.java  가  있는  디렉토리에  같이  있다.
    2)  특정  위치에  있다.

1)  번의  경우  getClass().getResourceAsStream()을  이용해서  파일을  읽으면  되고
2)  번의  경우는  File  클래스를  이용하면  된다.
또한  JAVA  시스템  변수나  환경변수를  이용할  수도  있다.
    *  System.getProperty("user.dir")
    *  java  -Dproperty.dir=%WS_HOME%/property  com.PropertyTest
        (WS_HOME은  시스템  환경변수임)


#################################  #################################  #################################


사용  방법  :  
//  서버  환경별  정보
Property  p  =  new  Property().getInstance();
System.out.println("driverUrl  =  "  +  p.driverUrl);
System.out.println("databaseUser  =  "  +  p.databaseUser);
System.out.println("databasePasswd  =  "  +  p.databasePasswd);


//  고정  정보
System.out.println("Default  driverUrl  =  "  +  Property.driverUrl);


#################################
#  Property.java
#################################

package  com.portal.common;

import  java.util.*;
import  java.io.*;


public  class  Property  {

public  Property(){
}

//  DB  연결
public  static  String  driverClass="oracle.jdbc.OracleDriver";
public  static  String  driverUrl="jdbc:oracle:thin:@111.222.333.444:1521:ORASID";  //  
public  static  String  databaseUser="UserID";
public  static  String  databasePasswd="UserPasswd";


static  private  Property  instance;              //  The  single  instance
static  private  String  PROPERTY_FILE  =  "db.property";
static  Synchronized  public  Property  getInstance()  {
if  (instance  ==  null)  {
instance  =  new  Property(PROPERTY_FILE);
}
return  instance;
}      

private  Property(String  propertyFile)  {
try{
PROPERTY_FILE  =  propertyFile;
loadProperties();
}catch(Exception  e)  {}
}


public  void  loadProperties()
{
Properties  props  =  new  Properties();
try  {
System.out.println("프로퍼티  정보를  로딩합니다.");

if  (System.getProperty("property.dir")  ==  null)  {
System.out.println("===  Property.java  가  있는  디렉토리의  db.property  Read  ===");

propertyPath  =  PROPERTY_FILE;

InputStream  is  =  getClass().getResourceAsStream(propertyPath);
props.load(is);
}  else  {
System.out.println("===  property.dir  디렉토리의  db.property  Read  ===");

propertyPath  =  System.getProperty("property.dir")  +  "/"  +  PROPERTY_FILE;
System.out.println("===  file  read  ===");

File  propFile  =  new  File(propertyPath);
FileInputStream  is  =  new  FileInputStream(propFile);


props.load(is);
}
System.out.println("Porperty  Path  :  "  +  propertyPath);




this.driverClass           =  props.getProperty("DRIVERCLASS").trim();
this.driverUrl           =  props.getProperty("DRIVER").trim();
this.databaseUser           =  props.getProperty("USER").trim();
this.databasePasswd          =  props.getProperty("PASSWORD").trim();
}
catch  (Exception  e)  {
System.err.println("Can't  read  the  properties  file.  ");
return;
}
}


}


#################################
#  db.property
#################################


DRIVER  =  jdbc:oracle:thin:@111.111.111.111:1521:ORA92
DRIVERCLASS  =  oracle.jdbc.OracleDriver
USER  =  User2
PASSWORD  =  Passwd2


#################################
#  TestProperty
#################################

package  test;

import  java.io.InputStream;
import  java.util.Enumeration;
import  java.util.Properties;

import  common.util.PropertyFile;

public  class  TestProperty  {
        
        
        public  static  String  STRING_VAL;
        public  static  boolean  BOOLEAN_VAL;
        public  static  int  INT_VAL  =  10;
        
        static  private  TestProperty  instance;              //  The  single  instance
//        static  private  String  PROPERTY_FILE  =  "/properties/test.properties";        //  소스  내부
        static  private  String  PROPERTY_HOME  =  "D:/2006Work/Alert/properties";
        static  private  String  PROPERTY_FILE  =  "test.properties";
        
        static  Synchronized  public  TestProperty  getInstance()  {
                if  (instance  ==  null)  {
                        instance  =  new  TestProperty();
                }
                return  instance;
        }        
        static  Synchronized  public  TestProperty  getInstance(String  propertyFile)  {                          
                if  (instance  ==  null)  {
                                PROPERTY_FILE  =  propertyFile;
                        instance  =  new  TestProperty();
                }
                System.out.println(PROPERTY_FILE);
                return  instance;
        }

        /**
          *  A  private  constructor  since  this  is  a  Singleton
          */
        private  TestProperty()  {
                try{
//                        loadProperties();
                        loadProperties2();
                }catch(Exception  e)  {}
        }

        
        private  void  setPropertyHome()  {
                if  (System.getProperty("property.dir")  !=  null)  {
                        PROPERTY_HOME  =  System.getProperty("property.dir");
                }
        }
        
        //  소스  안의  Property  load
        private  void  loadProperties()
        {
                InputStream  is  =  getClass().getResourceAsStream(PROPERTY_FILE);
                Properties  props  =  new  Properties();

                try  {
                        System.out.println("소스안의  프로퍼티  정보를  로딩합니다.  [  "  +  PROPERTY_FILE  +  "  ]  ");
                        props.load(is);
                }
                catch  (Exception  e)  {
                        System.err.println("Can't  read  the  properties  file.  [  "  +  PROPERTY_FILE  +  "  ]  ");
                        return;
                }
                
                load(props);
        }
        
        //  외부  파일을  읽는  경우..
        private  void  loadProperties2  ()  {
                PropertyFile  props  =  null;
                setPropertyHome();
                String  propertyPath  =  PROPERTY_HOME  +  "/"  +  PROPERTY_FILE;
                try  {
                        System.out.println("외부의  프로퍼티  정보를  로딩합니다.  [  "  +  propertyPath  +  "  ]  ");
                        props  =  new  PropertyFile(propertyPath);
                }
                catch  (Exception  e)  {
                        System.err.println("Can't  read  the  properties  file.  [  "  +  propertyPath  +  "  ]  ");
                        return;
                }
                
                load(props);
        }

        
        private  void  load(Properties  props)  {
                TestProperty.STRING_VAL  =  props.getProperty("STRING_VAL",    "String  Test");                    //  문자열
                TestProperty.BOOLEAN_VAL  =  new  Boolean(props.getProperty("BOOLEAN_VAL",    "false")).booleanValue();  //  boolean  
                TestProperty.INT_VAL  =  Integer.parseInt(props.getProperty("INT_VAL",  "10"));                //  int
                
                printInfo();              
        }
        
        public  static  void  printInfo()  {
                System.out.println("STRING_VAL  =  "  +  STRING_VAL);
                System.out.println("BOOLEAN_VAL  =  "  +  BOOLEAN_VAL);
                System.out.println("INT_VAL  =  "  +  INT_VAL);
        }
        
        /**
          *  @param  args
          */
        public  static  void  main(String[]  args)  {
                TestProperty.getInstance();
        }

}

출처  :  http://www.php.pe.kr/java_main/tnt/base/property.html