스프링 부트에서 autowired를 사용하고 있는데 종종 변수가 null 케이스여서 문제가 생기는 경우가 있다.
보통 라이프 사이클이 맞지 않아서 생성 전에 autowired 를 시도해서 생기는 케이스
보통 static 케이스에서 나더라.. 혹은 처음 생성자에서 변수 이니셜 할때 혹은 라이브러리 이것저것 임포트 했다가 꼬인 경우.
어노테이션으로 해서 디펜던시를 걸어서 특정 클래스 뒤에 생성을 하도록 하는 방법도 옛날엔 썼던것 같은데.
간단하게 생성자에서 해당 밸류를 생성자로 전달받게 하면 알아서 해당 빈이 먼저 생성되고 나서 순차적으로 생성된다.
이 경우 체인링 순환 생성 대기 케이스에 걸리지 않도록 조심할것.(그렇게 까지 무식하게 커다랗게 설계할꺼야?)
public class TheOtherService{
@autowired SomeService servce;
} |
public class TheOtherService{
SomeService service;
public TheOtherService(SomeService service){ this.service = service; }
} |
'program > springboot' 카테고리의 다른 글
spring boot error handling (0) | 2021.05.18 |
---|---|
스프링 프로파일 관리 (0) | 2021.05.13 |
스프링부트 bean 싱글톤 관리 어노테이션 (0) | 2021.05.13 |