본문 바로가기

IT/java

환경파일(Environment) 읽어드리기 ( 일반, IDE, 스프링4 )

반응형

Test.zip
2.75MB

개발을 진행하기전 가장 먼저 설정하는것이 바로, 환경에 따른 프로퍼티 값을 갖도록 설정값을 

분리하는것! ( 나만 그럴수도 있지만.. )

 

보통, db커넥션 정보라던가, 현재 환경이 개발인지 운영인지를 알기위한 값을 프로퍼티에 설정해놓고, 

배포할때는 이파일은 건들지 않고 처리하여 운영을 한다.

 

1. 실행시, -D 옵션으로 설정

java 프로그램 실행시 VM 의 옵션으로 -D 를 이용해, 프로퍼티 값을 전달할수 있다.

 

ex)

java -Dtestkey1=testvalue1 Environment

 

eclipse 안에서는 Run > Run Configurations 에서 해당값을 입력하여 실행 적용이 가능하다.

이클립스 내에서 설정

사용할때는 프로그램내에서 System.getProperty 로 참조 가능하다.

 

System.out.println(System.getProperty("testkey1"));

2. 프로그램 내에서 System.setProperty 이용

프로그램내에서 함수를 이용해 set 하고 이용가능하다. 이용하는 방법은 1과 같다

 

//내부에서 프로퍼티 셋팅
System.setProperty("testkey2", "testvalue2");
//사용
System.out.println(System.getProperty("testkey2"));

3. 스프링에서 사용

스프링에서는 Config 파일에 PropertySource 를 이용해, 프로퍼티파일을 지정해 주고, 해당 컨텍스트에서

getEnvironment 함수를 이용해 환경변수 관련 클래스를 얻은후, 사용할수 있다.

 

ex)

3.1 src 폴더 바로밑에 test.properties 파일 생성하고,

테스트프로퍼티 파일 위치 참조

 내용을 아래와 같이 쓴다.

test.key1=value1
test.key2=value2
test.key3=value3

 

3.2 컨피그 파일을 생성한다. 

com.samdogs.config.MainConfig.java 를 생성하고 아래와 같이 쓴다.

 

package com.samdogs.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@PropertySource("classpath:/test.properties")
public class MainConfig {
	
	@Bean
	public String testBean() {
		return new String("HelloWorld");
	}
}

3.3 컨텍스트를 생성하고, env 속성을 얻어 사용한다.

com.samdogs.test.TestEnvironment.java 를 생성하고 아래와 같이 쓴다.

 

package com.samdogs.test;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;

import com.samdogs.config.MainConfig;

public class TestEnvironment {
	public static void main(String[] args) {
		
		AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(MainConfig.class);
		ConfigurableEnvironment env = ctx.getEnvironment();
		
		System.out.println(env.getProperty("java.version"));
		System.out.println(env.getProperty("test.key2"));

	}

}

끝.~

 

실행소스는 첨부합니다~!

반응형