안녕하세요 오늘은 spring boot에서 yml 파일을 읽어서 출력하는 로직을 구현해 보도록 하겠습니다
주로 프로퍼티를 구현할 때 많이 사용하며 들여쓰기를 사용하여 계층 구조를 나타내는 파일입니다. JSON 보다는 무거우며 properties 파일 보다는 가벼운 것이 특징입니다.
yml 파일 값을 가져오고 출력해오는 로직을 구현해보도록 하겠습니다
spring boot에서 제공하는 application.yml 파일뿐아니라 yml파일을 하나 더 만들어 같이 가져와보고 출력해보도록 하겠습니다.
application.yml 뿐 아니라 다른 yml파일을 가져오기 위해 yml파일을 하나더 생성해 줬습니다.
spring:
config:
import:
- classpath:/dev-config.yml
test:
name: name
extern:
yml:
test: ymlTest
spring boot가 외부 yml파일을 인식 할수 있게 외부 yml 경로를 application.yml에 추가해 줍니다.
@Component
@RequiredArgsConstructor
public class YmlPropertyUtil {
private final Environment environment;
public String getProperty(String name){
return environment.getProperty(name);
}
}
Environment 인터페이스는 환경 설정 파일에 존재하는 모든 설정을 가지고 있는 인터페이스입니다. 인터페이스이기 때문에 생성자를 @RequiredArgsConstructor를 통해 구현하였습니다 environment 하위에 있는 getProperty 메소드는 yml파일에 있는 프로퍼티를 찾아 값을 반환해주는 메소드입니다
public String propertyEx() throws Exception {
System.out.println(ymlPropertyUtil.getProperty("test.name"));
System.out.println(ymlPropertyUtil.getProperty("extern.yml.test"));
}
테스트를 위해 test.name과 extern.yml.test를 콘솔에 출력시켜 보겠습니다.
테스트 결과 프로퍼티 값이 정상적으로 콘솔에 찍힌것을 확인할수 있었습니다 다음번엔 더 재미있는 소재로 찾아뵙겠습니다 감사합니다.