MyBatis | 설정 파일 | 외부 속성 파일 로드
코드 작성
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="hoge.properties">
<property name="hoge" value="property tag"/>
<property name="fuga" value="property tag"/>
<property name="piyo" value="property tag"/>
</properties>
</configuration>
hoge.properties
fuga=property file
piyo=property file
Main.java
package sample.mybatis;
import java.io.InputStream;
import java.util.Properties;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Main {
public static void main(String[] args) throws Exception {
try (InputStream in = Main.class.getResourceAsStream("/mybatis-config.xml")) {
Properties prop = new Properties();
prop.put("piyo", "Properties Class");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in, prop);
Properties properties = factory.getConfiguration().getVariables();
properties.forEach((key, value) -> {
System.out.printf("%s=%s%n", key, value);
});
}
}
}
실행결과
hoge=property tag
fuga=property file
piyo=Properties Class
설명
- 다음 위치에서 속성을 정의할 수 있다.
<properties>
태그 안에<property>
태그를 정의한다.<properties>
태그에서 가져온 속성 파일를 정의한다.- SqlSessionFactory를 생성할 때 Properties 인스턴스를 건네 준다.
- 각 정의는 위에서 아래 순서대로 로드하고, 나중에 로드된 것이 덮어 쓰여진다.
<properties>
태그로 다른 파일을 가져오는 경우, resource 속성에 리소스 파일을 url 속성으로 URL 지정으로 파일을 읽어 올 수 있다.- url 속성에 지정하려면,
file:///C:/foo/bar/hoge.properties
같은 느낌으로 지정한다.
- url 속성에 지정하려면,
- 가져온 속성은
${...}
형태로 참조를 할 수 있다.
최종 수정 : 2021-08-26