Programing/Error Resolution(오류해결)

세무민의 코딩일기 : application.yml 파일 내 변수 생성 후 @Value 호출 시 Null 가져오는 문제 해결

세기루민 2022. 11. 24. 17:34
728x90

이번 포스팅은 회사에서 코딩하다가 해결한 사항이라서 코드는 직접 올리지 못하지만 아래와 같이 처리했다는 걸

기록용으로 남겨보려고 한다.


// 해당 코드는 예시를 들어서 설명하기 위한 코드

/*
 * application.yml
 * /
moomin:
    url : sg-moomin.tistory.com
    
/*
 * Class
 * /

@Component
public class moomin(){

    @Value("${moomin.url}")
    private String url;
    
    public string main(){
    	return url;
    }

}

일단 위의 코드는 예시임으로 정확하지 않을 수 있다.

위의 소스만 봤을 때는 사실 문제 될 사항이 없다.

컴포넌트 어노테이션을 통해 스프링 DI도 연결한 상태임으로 null이 리턴된다면 해당 클래스를 호출하는 부분을 봐야한다.

내가 오류를 범했던 부분은 New로 해당 클래스를 선언하여 발생하였다.

당연하게도 @Value는 Bean으로 관리됨으로 New로 클래스를 생성하면 안되는 것이였다. 

따라서 해당 클래스를 호출하는 부분에 대해 @Autowired로 모든 로직을 변경해주면 해당 문제는 해결된다. 

 

728x90