programming/Spring

[Spring Boot] application.yml의 리스트 값 사용하기

LeeBorn 2020. 10. 7. 22:11
반응형

Spring

기본적인 사용법은 여기에서 확인할 수 있다.

 

리스트를 사용하려면 아래와 같이 사용하면 된다.

application.yml

messenger:
    list: KAKAOTALK,SLACK,LINE,TELEGRAM

 

그리고 spring boot에서 application.yml의 값을 가져와서 사용하려면 아래와 같이 사용할 수 있다.

application.yml의 값을 String 또는 설정된 enum값으로 사용할 수 있다.

 

MainController.java (1) - List <String>로 사용

import org.springframework.beans.factory.annotation.Value;

@RestController
public class MainController {
    @Value("${messenger.list}")
    List<String> list;
	
    public void test(){
    	for(String messenger : list){
        	System.out.println("messenger : " + messenger);
        }
        
	}
}

 

MainController.java (2) - List <Messengers>로 사용

import org.springframework.beans.factory.annotation.Value;

@RestController
public class MainController {
    @Value("${messenger.list}")
    List<Messengers> list;
	
    public void test(){
    	for(Messenger messenger : list){
        	System.out.println("messenger : " + messenger);
        }
        
	}
}

 

Messensers는 enum인데 문자열과 마찬가지로 불러와서 사용할 수 있다.

Messengers.java

public enum Messengers {
    SLACK,KAKAOTALK,LINE,TELEGRAM;
}

 

실행결과

 

만약, application.yml 에 Messengers에 선언되지 않은 값이 포함되면 에러를 발생시킨다.

 

application.yml

list: KAKAOTALK,SLACK,LINE,TELEGRAMSS

 

error

for value 'TELEGRAMSS'; nested exception is java.lang.IllegalArgumentException:
반응형