개발/JAVA, Spring

[java/spring] Spring profile 사용하기

똘똘이박사 2019. 11. 27. 19:30

이 포스팅은 java/spring 스터디에서 IntelliJ로 개발하면서 진행했던 내용을 정리한 것입니다.

스프링 프로파일은 중요한 속성 정보를 별도의 파일로 한 곳에 관리 할 수 있는 방법입니다.

보통 DB와 같은 정보는 중요하므로 별도의 속성 파일을 만들어 관리하는 것이 일반적 입니다.

이번 포스팅에서는 DB의 속성 정보를 분리해 보도록 하겠습니다.

 

1. 데이터 베이스 속성 설정 파일 생성하기

데이터베이스의 속성을 설정할 설정파일(xml)파일을 생성합니다.

위의 화면과 같이 src\main\resources 아래에 properties 라는 디렉토리를 만듭니다.

그리고 그 안에 datasource_properties.xml 이라는 파일을 생성합니다.

datasource_properties.xml 파일의 내용은 아래와 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties
        SYSTEM "http://java.sun.com/dtd/properties.dtd">

<properties>
    <comment>DATA_SOURCE</comment>
    <entry key="jdbc.driverClassName">com.mysql.cj.jdbc.Driver</entry>
    <entry key="jdbc.url">jdbc:mysql://localhost:3306/DB_name?useSSL=false&amp;serverTimezone=UTC</entry>
    <entry key="jdbc.username">root</entry>
    <entry key="jdbc.password">qwerqwer</entry>
</properties>

 

 

2. spring util 추가하기

이 셋팅은 서버에서만 적용되는 사항이므로 applicationContext.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:context="http://www.springframework.org/schema/context"
       <!-- 추가된 부분 -->
       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/context http://www.springframework.org/schema/context/spring-context.xsd
        <!-- 추가된 부분 -->
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
        <!-- //추가된 부분 -->
        ">

    <context:component-scan base-package="com.freehoon.u4">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
    
    <!-- 추가된 부분 -->
    <util:properties id="datasource" location="classpath:properties/datasource_properties.xml"/>
    <!--//추가된 부분 -->
</beans>

이제 datasource 라는 이름으로 datasource_properties.xml에 정의된 속성을 가져와 사용할 것입니다.

 

3. datasourceContext.xml 파일 수정

데이터베이스의 속성을 모두 다른 파일로 옮겼으므로 이제 datasourceContext.xml 파일을 수정해 봅니다.

dataSource bean의 내용을 아래와 같이 수정합니다.

<!-- 원래 소스

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>

        <property name="url" value="jdbc:mysql://localhost:3306/DB_name?useSSL=false&amp;serverTimezone=UTC"/>

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

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

    </bean>

-->

    <!--수정된 소스-->

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

        <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']}" />

    </bean>

 

설정이 잘 되었는지 junit를 사용해 확인해 봅니다.

 

 

반응형