른록노트

[Java] Properties 사용법 본문

Programming/[Java]

[Java] Properties 사용법

른록 2018. 9. 22. 04:03

@ 방법


1. Spring에서 적용하여 사용방법

servlet-context.xml


1) PropertyPlaceholderConfigurer를 이용한 properties 파일 읽어오기 


location 프로퍼티의 값에는 콤마나 공백으로구분된 프로퍼티 파일 목록이 오며, 프로퍼티 파일에 포함된 프로퍼티의 값은 '${프로퍼티 이름}' 형식으로 사용할 수 있습니다. 예제를 보면 config.properties 안에 있는 db.driver의 값을 xml 파일에서 '${db.driver}' 형태로 사용할 수 있습니다.


<beans:bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<beans:property name="location" value="/WEB-INF/config/config.properties"/>

<beans:property name="fileEncoding" value="UTF-8" />

</beans:bean>

<beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

<beans:property name="driverClassName" value="${db.driver}"/>

<beans:property name="url" value="${db.url}">

<beans:property name="username" value="${db.username}"/>

<beans:property name="password" value="${db.password}"/>

</beans:bean>



Java Source

@value 어노테이션 선언으로 값을 가져올 수 있습니다.


@Controller


public class HomeController {  


@Value("${file.path}")

private String file_Path;

@Value("${db.username}")

private String dbUser;

@RequestMapping(value = "/", method = RequestMethod.GET)

public String home(Locale locale, Model model) {

model.addAttribute("filePath", file_Path);

model.addAttribute("dbUser", dbUser);

return "home";

}

}




JSP Page


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<%@ page session="false" %>

<html>

<head>

<title>Home</title>

</head>

<body>

<h1>

Hello world!  

</h1>


<P>  FilePath is ${filePath} </P>

<P>  dbUser is ${dbUser} </P>

</body>

</html>


2) context:property-placeholder를 이용한 properties 파일 읽어오기

먼저 context:property-placeholder을 사용하기 위해서는 servlet-context.xml에서 설정이 필요합니다.


<context:property-placeholder location="classpath:config/*"/>


<beans:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

<beans:property name="driverClassName" value="${db.driver}"/>

<beans:property name="url" value="${db.url}">

<beans:property name="username" value="${db.username}"/>

<beans:property name="password" value="${db.password}"/>

</beans:bean>


3) <util:properties/> 와 Spring EL을 이용한 properties 파일 읽어오기

먼저 servlet-context.xml의 네임스페이스 시트로 들어가 util 체크박스를 클릭합니다.


<util:properties id="dbinfo" location="classpath:/config/config.properties"/>

    <util:properties id="fileinfo" location="classpath:/config/config.properties"/>


Java Source


@value 어노테이션 선언으로 값을 가져올 수 있습니다.


${"'#id명'[프로퍼티안에 저장된 값]"}


@Controller

public class HomeController {  

@Value("#{fileinfo['file.path']}")

private String file_Path;

@Value("#{dbinfo['db.username']}")

private String dbUser;

@RequestMapping(value = "/", method = RequestMethod.GET)

public String home(Locale locale, Model model) {

model.addAttribute("filePath", file_Path);

model.addAttribute("dbUser", dbUser);

return "home";

}

}



2. PropUtil 클래스를 만들어 사용하는 방법


* 파일 경로를 가져오는 방법 3가지

1. 프로그램 코드에 상수로 프로터피 파일의 경로를 둔다.

2. java 실행 옵션으로 세팅해서 프로그램에서 사용한다.

3. ClassLoader를 사용하여 가져온다. (전 이 방식 선택)


package core.util;


import java.net.URL;

import java.util.Properties;


/**

 *

 * @author eunbok

 */

public class PropUtil {


    public static String getProp(String key, String Default) {

        String value = "";

        try {


            ClassLoader cl;

            cl = Thread.currentThread().getContextClassLoader();

            if (cl == null) {

                cl = ClassLoader.getSystemClassLoader();

            }


            URL url = cl.getResource("server.properties");


            Properties props = new Properties();


            props.load(new java.io.BufferedInputStream(url.openStream()));

            value = props.getProperty(key, Default).trim();

            


        } catch (Exception e) {

            e.printStackTrace();

        }


        return value;

    }

}



참고사이트

http://ktko.tistory.com/entry/Spring-properties-%EC%9D%BD%EC%96%B4%EC%98%A4%EA%B8%B0

http://jbongsu.blogspot.com/2012/10/java-java-properties.html

http://hamait.tistory.com/360

반응형
Comments