본문 바로가기
개발/Spring 블로그 만들기

Spring 블로그 만들기 - 11. properties 사용하기

by 똘똘이박사 2019. 3. 8.




이 포스팅의 샘플 게시판 개발 환경은 MAC OS, STS, OpenJDK11 입니다.


properties 설정에 대한 포스팅은 아래와 같은 순서로 진행합니다.

  1. properties 파일 생성

  2. common-context.xml 파일 생성

  3. datasource-context.xml 파일 수정


블로그 만들기 - 11. properties 사용하기



프로젝트를 진행하다 보면 여러 가지 공통적으로 사용되는 속성값들이 있습니다.

예를 들어 DB의 설정값이나, 어떤 특정 상태값을 나타내는 데이터들입니다.

이번에는 DB 설정값을 별도로 관리 할 수 있도록 properties 파일로 분리하는 작업을 하도록 하려고 합니다.



properties 파일 생성

우선 DB관련된 속성값이므로 database-properties.xml 이라는 파일을 만들기로 하고

서버에서 사용할 데이터 이므로 [src/main/resources] 아래 properties 라는 디렉토리를 만들어 추가 하도록 하겠습니다.

앞으로 서버에서 나오는 모든 속성값 설정 파일은 이 디렉토리에 저장 할 예정입니다.



database-properties.xml 아래와 같습니다.


database-properties.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <comment>DATA_SOURCE</comment>
    <entry key="jdbc.driverClassName">net.sf.log4jdbc.sql.jdbcapi.DriverSpy</entry>
    <entry key="jdbc.url">jdbc:log4jdbc:mysql://127.0.0.1:3306/mess?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC</entry>
    <entry key="jdbc.username">mess</entry>
    <entry key="jdbc.password">mess</entry>
</properties>

properties 파일은 entry 속성에 key 값으로 데이터들을 구분합니다. 
예를 들어 username 값을 지정 하려면 <entry key="username">속성값(유저이름)</entry> 라고 지정합니다. 데이터베이스 설정에 사용되는 값은 '드라이버클래스명', 'url' , '사용자명', '비밀번호' 등 4가지 값입니다. 따라서 위에서는 4가지 값을 설정하였습니다.


common-context.xml 파일 생성
스프링에서 사용할 속성파일들만 정의할 용도로 새로운 파일을 하나 만듭니다.
아래 그림과 같이 [src/main/resources > spring] 아래에 common-context.xml 파일을 새로 만들고 아래와 같이 코드를 입력 합니다.



common-context.xml (신규파일)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
 
  <!-- properties -->
<util:properties id="datasource" location="classpath:/properties/database-properties.xml"/>
</beans>


datasource-context.xml 파일 수정
이제 datasource-context.xml파일 수정합니다. 

datasource-context.xml 파일 수정 (DB 설정 부분 수정)

<!--  변경 전 설정상태    

        <property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy" />

        <property name="url" value="jdbc:log4jdbc:mysql://127.0.0.1:3306/mess?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=UTC" />

        <property name="username" value="mess"></property>

        <property name="password" value="mess"></property>

        -->

      <!-- 변경 후 설정상태-->

        <property name="driverClassName" value="#{datasource['jdbc.driverClassName']}" />

        <property name="url" value="#{datasource['jdbc.url']}" />

        <property name="username" value="#{datasource['jdbc.username']}" />

        <property name="password" value="#{datasource['jdbc.password']}" />



붉은색 표시된 부분이 이번에 새로 추가된 부분이고, 파란색 표시된 부분은 이전과 달라진 부분입니다.


이제 서버를 재시작 해봅니다.






 





※ 포스팅에 오타나 잘못된 부분, 추가적으로 더 알고 싶은 부분이 있으면 댓글 주세요~



반응형