Java에서 Properties 사용법
- Language/Java
- 2017. 4. 24.
Properties 라는 클래스는 응용 어플리케이션을 간단하게 만들 경우 상당히 자주 쓰는 클래스중 하나이다.
XML로 변수값을 설정할 수 있지만, 용도가 간단하고 설정이 몇개 존재하지 않는다면, XML보다는 Properties를 사용해서 소스를 최대한 심플하게 만드는 것이 개인적으로 더 좋다고 생각하고 있다.
개발을 하다보면, 사람들이 철학이 없어지는 경우를 종종 보게 된다.
어떠한 기술이든 새로나온 라이브러리든...
최근에 나온 기술이라고, 예전 기술보다 좋다라는 착각을 하게 된다. 대표적인 것이 바로 XML로 설정을 하는 것이라고 생각한다.
간단히 상수값 몇개를 설정하는 것이라면 굳이 복잡하게 파싱해면서까지 XML을 사용할 필요가 있을까?
Properties 클래스를 사용하면, 소스 2~3 라인이면 아주 쉽게 사용할 수 있고, 소스의 가독성도 더 좋아진다고 생각한다.
물론, 설정하는 것이 많아지고, 배열 형태로 간다든지... 혹은 한글 사용등 프로퍼티가 커지면 XML류의 프로퍼티가 좋다고 생각하지만, 그외라면 그냥 자바를 쓰는 것이 낫다고 생각한다.
아래는 Properties 사용법이다.
파일이 소스 위치에 있다는 가정으로 진행된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import java.util.Properties; ... public class Test { private String test; public Test() { Properties prop = new Properties(); try{ prop.load(new FileInputStream("test.properties")); test = prop.getProperty("TEST"); } catch (Exception e) { } } public void test() { System.out.println(test); } } | cs |
Properties 라는 클래스를 new로 생성하고,new FileInputStream 하나로 test.properties 프로퍼티 파일을 로드하게 된다.
다음 prop.getProperties라는 메소드를 사용해서, 프로퍼티의 값을 불러온다.
test.properties에는 아래와 같이 세팅만 하면 그만이다.
1 | TEST=test |
이제, 파일을 다른 위치에서 한번 읽어보도록 해보겠다.
웹설정같은 경우, resources 밑에 properties를 넣는 경우가 자주 있는데 이걸 읽어오는 방법이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class TestDao { public String url; public String id; public String pwd; public TestDao() { Properties prop = new Properties(); InputStream is = null; try { is = TestDao.class.getClassLoader().getResourceAsStream("test.properties"); prop.load(input); url = prop.getProperty("url"); id = prop.getProperty("id"); pwd = prop.getProperty("pwd"); } catch (Exception e) { System.out.println("PROP LOAD ERROR : " + e.getMessage()); } } } | cs |
FileInputStream 대신, getClassLoader.getResourceAsStream 명령어를 사용해서, resource 위치에 있는 파일에 접근할 수 있게 되었다.
이런식으로 간편하게 프로퍼티를 설정하는 방법도 있으니, 굳이 복잡하지 않고, 간단하게 구현하거나 복잡하지 않는 소스라면 위와 같이 설정하는 것도 하나의 방법이다.
어디까지나 프로그램은 트레이드 오프 관계를 잘 따져야 되기 때문에 한쪽으로만 치우친 개발자는 철학과 사상이 없고, 나중에 사람들의 질문에 답변조차 제대로 못하는 개발자가 되기 쉽다.
'Language > Java' 카테고리의 다른 글
[Java] Split시 공백 처리 방법 (6) | 2019.05.21 |
---|---|
[Java] List/배열값 한줄로 SUM (0) | 2019.01.16 |
[JAVA] 랜덤 문자열 생성 방법 (0) | 2018.12.24 |
[JAVA] 소수점 자리수 이쁘게 보여주기 (0) | 2018.12.04 |
[Java] UTF-8 캐릭터셋(Charset) 문제 해결 (0) | 2018.03.28 |