Spring Boot와 같은 프레임워크에서 많이 사용되는 Java 애플리케이션 설정 파일

 

application.properties의 뜻과 사용법

application.properties는 보통 Spring Boot를 사용할 때 한 번씩은 다루어야 하는 설정 파일로, 특히 데이터베이스 연결 정보를 정의할 때 많이 필요로 한다. Spring Boot가 애플리케이션을 구동할 때 자동으로 이를 로드해준다.

 

🔗 https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html

일반 애플리케이션 속성은 아래 사이트에서 찾아볼 수 있는데, 사실 복잡하니 그 때 필요한 속성들을 잘 정리된 블로그에서 찾아보는 것이 가장 좋을 것이다.

 

Common Application Properties

 

docs.spring.io

 

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=username
spring.datasource.password=password

 

보통 위와 같이 {키=값} 쌍으로 작성하게 된다. 

 

개발 환경에 따른 properties 사용

 

당연하게, 데이터베이스 아이디 / 비밀번호와 같은 설정 정보는 외부에 노출되면 안 된다. 이는 GitHub와 GitLab 같은 원격 버전 관리 도구에도 올라가면 안 된다는 것이다.

또한, 개발 시 사용하는 DB와 원격 서비스 시 사용하는 DB 같이 필요한 정보가 다를 때가 존재한다. 

이를 위해 개발자는 properties가 각 개발 환경에 다르게 작동될 수 있도록 해야 한다.

 

application-{실행환경}.properties 와 같은 방식으로 application.properties와 같은 경로에 파일을 새로 생성한다. 여기서 실행 환경에는 local, dev, prod 등이 기본적으로 많이 사용된다.

 

# application.properties
spring.profiles.active=local

 

이후 application.properties에서 사용할 실행환경의 properties를 설정해준다. 이렇게 되면 application.properties와 함께 자동으로 해당 실행환경의 properties가 로드 된다.

 

애플리케이션에서 application.properties를 참조하는 방법

 

라이브러리에 필요한 정보 외에 따로 숨겨야할 변수가 존재할 경우, application.properties에 정의해 두고 사용하기도 한다.

이럴 때엔 클래스 내에 전역 변수를 두고 @Value 어노테이션을 사용함으로써 정의한 값을 받아올 수 있다.

 

@Value("${api.secretkey}")
private String key;

 

 

유영웅