Spring boot static method에서 @Autowired field를 호출해야 하는 경우

2024. 8. 13. 22:15Java/Spring Boot

static method에서 @Autowired field를 호출하면 null 에러가 발생함

해결하기 위해서 해당 class의 생성자에 @Auowired를 기술함

# @Autowired를 쓰기 위해서 필요함
@Component
public class Util {
	
    #  static으로 설정
	private static UtilService utilService;
	
    # @Autowired로 지정
	@Autowired
	public Util(UtilService utilService) {
    	# this가 아닌 Util로 호출
		Util.utilService = utilService;
	}

	public static String test(String type, String value) {
		String result = "";
		
		switch(type) {
			case "test" : result = "";
				break;
            # utilService로 호출
			default: result = utilService.temp(value);
		}
		return result;
	}	
}