Spring | Spring Data JPA 이용 | application.properties 작성


생성한 persistence.xml의 내용을 살펴보면 <property> 태그에 포함되어있는 속성의 값은 ${XX} 형태로 쓰여 있다. 이것은 속성 파일에 포함되어 있는 값을 집어 넣어서 사용하게 되어있는 것이다.

프로젝트는 “resources"폴더에 “application.properties"라는 속성 파일이 생성하다. 여기에 persitence.xml에 필요한 값을 기술하는 것이다. 아래와 내용으로 작성 하자.

#Database Configuration
db.driver=org.h2.Driver
db.url=jdbc:h2:mem:datajpa
db.username=sa
db.password=
  
#Hibernate Configuration
hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.hbm2ddl.auto=create-drop

여기에서는 “db. XX"와 같은 항목과 “hibernate. XX"와 같은 항목이 작성되어 있다. db로 시작하는 항목은 데이터베이스 액세스에 대한 기본 설정이다. 데이터베이스 드라이버, 클래스 액세스하는 URL, 사용자 이름, 비밀번호가 있다.

H2에 액세스의 경우, 드라이버는 org.h2.Driver라는 클래스를 지정한다. 또한 액세스 URL은 jdbc:h2:mem:datajpa로 하였다. 이것은 H2 메모리에 “datajpa ‘라는 이름으로 데이터베이스를 준비하는 것을 의미한다. 메모리에 만드는 프로그램 종료 후에는 깨끗이 데이터베이스는 사라진다. 학습용으로는 최적의 사용 방법이다.

만약 메모리가 아닌 하드 디스크에 파일로 저장하고 싶다면 “jdbc:h2:경로"라는 형태로 쓰면 된다. 예를 들어, jdbc:h2:/db/dbdata으로 쓰게 되면 디스크의 “db"폴더에 “dbdata"라는 파일을 만들고 거기에 데이터를 저장한다.

Hibernate 관련은 Diarect 값으로 org.hibernate.dialect.H2Dialect를 지정하고 있다. 이것은 H2용 Dialect 클래스이다. 또 hibernate.hbm2ddl.auto 값에 create-drop 지정있어서, 프로그램 시작시 데이터베이스를 생성하고 종료할 때 삭제하는 것을 의미한다. 이번은 H2의 메모리에 저장하고 있기 때문에, 스펙에 관계없이 종료하면 데이터베이스가 삭제된다.