Spring Boot에서 MariaDB를 사용하기 위해서는 드라이버, URL, 사용자 아이디, 비밀번호가 필요하다. 하지만 URL, 아이디, 비밀번호는 민감한 정보이므로 해당 정보를 작성한 properties 파일을 프로젝트 폴더 밖에 저장하려고 한다.
이 경우 @PropertySource 어노테이션을 사용해 해당 파일 경로를 작성해야 한다.
package com.chordncode.springboard.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import lombok.Data;
@Data
@Configuration
@PropertySource(
value="file:${user.home}/Desktop/dev/application.properties",
ignoreResourceNotFound=true
)
public class DatabaseConfiguration {
@Value("${spring.datasource.driver-class-name}")
private String driverClassName;
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
}
@PropertySource | 사용할 Property 파일의 위치를 설정한다. |
value="file:..." | 해당 Property 파일의 경로를 파일 경로 즉, 절대 경로로 작성한다. |
value="classpath:..." | 해당 Property 파일의 경로를 클래스 경로로 작성한다. |
${user.home} | macos를 기준으로 현재 사용자의 home 디렉토리를 가리킨다. |
ignoreResourceNotFound | properties가 존재하지 않을 때 무시하고 넘어갈지 여부 |
@Value | Property 파일에서 가져올 값의 키 이름 |
value="file:..."과 value="classpath:..."
읽어오고자 하는 파일의 경로를 file 경로로 찾을지, class 경로로 찾을지 지정할 수 있다.
file:
- 'file:'을 사용할 경우 시작 경로는 프로젝트 최상위 디렉터리(src 디렉터리의 상위 디렉터리)를 가리킨다.
- 예를들어 찾고자하는 파일이 filename.txt라면, 'value="file:filename.txt"' 로 지정하면 된다.
classpath:
- 'classpath:'를 사용할 경우 시작 경로는 '/src/main/resources' 디렉터리이다.
'Java > Spring Boot' 카테고리의 다른 글
[Spring Boot] JPA의 복합키 (0) | 2023.04.09 |
---|---|
[Spring Boot] Controller 예외처리 (0) | 2023.04.09 |
[Spring Boot] Controller 생성 (0) | 2023.03.28 |
[Spring Boot] Service 생성 (0) | 2023.03.28 |
[Spring Boot] DAO 생성 (0) | 2023.03.28 |