다중 Database를 사용하고자 할 경우, applicaiton.yaml 파일에 다음과 같이 신규 datasource설정을 추가합니다. 아래 예시는 oracle과 h2를 연결하는 예제입니다.
database: oracle
# DB Connection 1
spring:
datasource:
driver-class-name: org.h2.Driver
url: jdbc:h2:mem:test;MODE=Oracle
username: sa
password:
sql:
init:
schema-locations: classpath:h2/schema.sql
data-locations: classpath:h2/data.sql
mode: always
mybatis:
mapper-locations: classpath:/sqlmap/h2/**/*.xml
# DB Connection 2
msp:
gateway:
datasource:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@127.0.0.1:1521:UDB
username: lab
password: lab
mybatis:
mapper-locations: classpath:/sqlmap/${database}/**/*.xml
DB Connection 1
DB Connection 2
애플리케이션 서버에 정의된 데이터베이스 연결정보를 참조하는 방식으로, 애플리케이션이 데이터베이스 연결 설정을 직접 관리하지 않고 애플리케이션 서버(Tomcat, WebLogic 등)가 제공하는 JDNI 리소스를 참조하여 데이터베이스에 연결하는 방식을 지원합니다. 아래는 예시입니다.
Tomcat 기준으로, tomcat의 설정파일인 server.xml이나 context.xml 파일에서 JNDI 설정을 진행합니다.
<Context path="/">
<Resource name="jdbc/msp_mysql"
auth="Container"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/[Database]?characterEncoding=UTF-8"
username="[DB 사용자]"
password="[DB 비밀번호]"
testOnBorrow="true"
minIdle="5"
maxActive="100"
maxIdle="10"
maxWait="-1"
/>
</Context>
application.yml에서 msp.gateway.datasource.jndi-name을 Resource name과 일치하도록 작성합니다.
msp:
gateway:
datasource:
jndi-name: jdbc/msp_mysql