평소처럼 db.properties 를 사용하다가 어쩌다 검색을 해보니
stackoverflow나 영미권 블로그들에서는 *.properties를 사용하지 않는 것을 보았습니다.
최신 stackoverflow 스프링 설정 관련 답글들을 보면 대부분 xml 보다는 java를 통한 설정을 선호하는 것 같고요.
*.properties는 그보다 더한 구식인가 봐요.
그래서 저도 db.properties를 xml로 바꿔서 딱 한발짝만 따라가보기로 했습니다.
db.properties.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd" > <properties> <entry key="db.driverClassName">com.mysql.cj.jdbc.Driver</entry> <entry key="db.jdbcUrl">jdbc:mysql://127.0.0.1:3306/schema</entry> <entry key="db.username">id</entry> <entry key="db.password">pw</entry> </properties> | cs |
생김새는 원래 쓰던 것과 비슷하네요.
저는 root-context.xml 에 dataSource 관련 설정이 있습니다.
먼저 Namespaces로 가서 util을 추가해 주고 아까 만든 db.properties.xml 을 가져옵니다.
<context:property-placeholder/> 대신 <util:properties> 를 사용합니다.
<!-- db.properties.xml --> <util:properties id="config" location="classpath:/conf/db.properties.xml" /> | cs |
그리고 아까 선언했던 key 값을 사용해서 가져오면 됩니다.
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig"> <property name="driverClassName" value="#{config['db.driverClassName']}" /> <property name="jdbcUrl" value="#{config['db.jdbcUrl']}" /> <property name="username" value="#{config['db.username']}" /> <property name="password" value="#{config['db.password']}" /> </bean> | cs |
.gitignore 수정 잊지 마시구요~!