안녕하세요. J4J입니다.
이번 포스팅은 환경 변수 파일 사용하는 방법에 대해 적어보는 시간을 가져보려고 합니다.
사용 방법
[ 1. 변수 파일 생성 ]
src/main/resources 경로에 properties라는 폴더를 생성한 뒤 그 안에 변수 값을 담아둘 env.properties 파일을 생성해보겠습니다.
env.properties 파일 안에는 Java 파일과 properties 파일에서 테스트할 데이터를 다음과 같이 각각 넣어보겠습니다.
# Java 파일에서 테스트
java.file.test=Hello, World!!
# properties 파일에서 테스트
properties.file.port=8080
[ 2. 변수 설정 파일 생성 ]
생성한 properties 파일을 개발을 하는 여러 파일들에서 사용될 수 있도록 설정 파일을 생성해보겠습니다.
다음과 같이 PropertyConfig.java 파일을 생성해보겠습니다.
설정 파일 안에는 다음과 같이 코드를 작성하겠습니다.
package com.spring.env.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.annotation.PropertySources;
@Configuration
@PropertySources({
@PropertySource("classpath:properties/env.properties") // env.properties 파일 소스 등록
})
public class PropertyConfig {
}
[ 3. Java 테스트 파일 ]
위와 같이 설정을 마쳤다면 Java 파일에서는 다음과 같이 작성하여 변수 파일에 들어있는 데이터를 가져와 사용할 수 있습니다.
package com.spring.env.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class EnvController {
@Value("${java.file.test}") // 변수 파일에 등록된 java.file.test 값 가져오기
String envValue;
@GetMapping("/getEnvValue")
public ResponseEntity<Object> getEnvValue() {
return new ResponseEntity<Object>(envValue, HttpStatus.OK);
}
}
[ 4. properties 테스트 파일 ]
위에서 설정한 변수 값을 이용하여 서버 포트를 설정하기 위해 application.properties에 다음과 같이 작성해줄 수 있습니다.
server.port=${properties.file.port}
일반적으로 변수 파일을 사용하는 이유는 DB 정보와 같은 중요 정보들을 숨기기 위함입니다.
그러므로 실질적으로 많이 사용되는 용도는 서버 포트 설정보다는 connection 맺을 DB 정보 입력 등에 자주 사용됩니다.
테스트
테스트를 하면 다음과 같은 결과를 확인할 수 있습니다.
API 요청에 의한 return 되는 값과 서버 포트 모두 env 파일에 설정되어 있는 값이 정상적으로 나오는 것을 확인할 수 있습니다.
이상으로 환경 변수 파일 사용하는 방법에 대해 간단하게 알아보는 시간이었습니다.
읽어주셔서 감사합니다.
'Spring > SpringBoot' 카테고리의 다른 글
[SpringBoot] JPA에서 QueryDSL 사용하기 (0) | 2022.04.24 |
---|---|
[SpringBoot] AWS S3에 파일 업로드하기 (1) | 2022.04.23 |
[SpringBoot] GraphQL 설정 (0) | 2021.12.23 |
[SpringBoot] 파일 다운로드 (0) | 2021.06.07 |
[SpringBoot] 파일 업로드 - MultipartFile(With. React) (0) | 2021.05.27 |
댓글