본문 바로가기

JAVA/STS(SpringToolSuite)

[STS] Spring Properties 파일을 이용해서 DB 정보 분리하는 방법

DB 정보를 root-context.xml 파일에서 설정을 할 수 있습니다

 

bean 등록을 통해서 아래와 같이 사용 가능합니다

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
	<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
	<property name="jdbcUrl" value="jdbc:log4jdbc:mysql://127.0.0.1:3306/DB_Schema?serverTimezone=UTC&amp;useSSL=false"></property>
	<property name="username" value="ex_username"></property>
	<property name="password" value="ex_password"></property>
</bean>

이렇게 사용하면 DB 연결을 바꿀 경우 매번 property의 값을 변경해야 합니다

oracle, mysql 등 여러 가지 DB를 시용하는 경우 쉽고 간편하게 관리할 수 있게

properties 파일로 DB 정보를 변경하는 방법입니다

 

우선 src/main/resources 경로 아래에 database.properties 이름으로 파일을 만듭니다

New > File

src/main/resources 경로에 마우스 우클릭 후 New 선택 후 Folder를 클릭해서 config 이름으로 폴더를 만듭니다

config 폴더 우클릭 후 New 선택 후 File을 클릭합니다

 

파일 안에 DB 정보를 입력합니다

### MySQL
db.mysql.driverClassName=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
db.mysql.jdbcUrl=jdbc:log4jdbc:mysql://127.0.0.1:3306/DB_Schema?serverTimezone=UTC&amp;useSSL=false
db.oracle.username=ex_username
db.oracle.password=ex_password

주석은 #을 입력하면 됩니다

 

이제 root-context.xml 파일 안에 DB 정보가 있는 bean 태그 위에 아래의 코드를 입력합니다

<context:property-placeholder location="classpath:config/database.properties" />

사용법은 ${} 입력하고 이 {} 안에 property 명을 입력합니다

예로 ${property}으로 아래와 같이 작성하면 됩니다

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
	<property name="driverClassName" value="${db.mysql.driverClassName}"></property>
	<property name="jdbcUrl" value="${db.mysql.jdbcUrl}"></property>
	<property name="username" value="${db.mysql.username}"></property>
	<property name="password" value="${db.mysql.password}"></property>
</bean>

bean 설정을 위와 같이 변경했는데 bean을 읽지 못하는 에러가 발생하면

탭에 열려있는 root-context.xml 클릭 후 아래의 탭 중 Namespace탭을 클릭합니다

root-context.xml > Namespaces > context를 체크합니다