Spring 으로 개발하다가  간혹... static에 객체를 빈을 주입해야하는 경우가 생긴다.

 

 @Component
 public TestComponent(){	
    
    @Autowired
    private static ApiService staticService;
}

위와 같이 static 에다가 @Autowired 할 경우에는  NullpointerException 일 발생한다.

 

그러면 어떻게 해야할까..

 

 

첫번째는 생성자를 사용하여 static에 Bean을 주입할 수 있다.

 @Component
 public TestComponent(){	
    
    private static ApiService staticService;

    @Autowired
    public void TestComponent(ApiService apiService){
        this.staticService = apiService;
    }
}

 

두번째는 @PostConstruct 를 사용하여 static에 Bean을 주입할 수 있다.

 @Component
 public TestComponent(){	
    
    @Autowired
    private ApiService apiService;

    private static ApiService staticService;


    @PostConstruct
    public void init(){
        this.staticService = apiService;
    }
}

 


 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기