
GitHub에 코드를 올릴 때 민감한 정보는 올리지 않아야한다.
보통 application.properties에 DB 정보나 API KEY를 넣고 gitignore를 이용해 GitHub에 올리지 않는다.
<이슈>
그래서 application.properties에 DB 정보를 넣고 root-context.xml에 변수로 넣었는데 404 에러가 발생했다.
application.properties의 값들이 왜 바로 root-context.xml에 바로 적용되지 않을까?
<원인>
Spring에서는 application.properties 파일의 값을 직접적으로 XML에서 사용할 수 없다.
<해결>
Spring XML에서 프로퍼티 값을 로드하려면 해당 값을 property placeholder로 참조할 수 있도록 설정해야 한다.
PropertyPlaceholderConfigurer는 Spring에서 application.properties나 application.yml 파일의 내용을 빈 설정에 주입하는 기능을 제공한다. 그래서 application.properties나 application.yml에 정의된 프로퍼티 값들을 Spring 빈 설정에 자동으로 주입할 수 있게 되어, root-context.xml에서 사용할 수 있게 된다.
* root-context.xml
<!-- Property 파일을 로드 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:application.properties"/>
</bean>
<!-- DB 정보 -->
<bean id="hikoriConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName" value="${spring.datasource.driver-class-name}"/>
<property name="jdbcUrl" value="${spring.datasource.url}"/>
<property name="username" value="${spring.datasource.username}"/>
<property name="password" value="${spring.datasource.password}"/>
</bean>
정보를 더 찾아보니 이 방법말고도 다양한 방법이 있는 것을 확인했다.
다른 방법도 한 번 적용해보고 확인할 필요가 있다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!