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;
}
}
'개발경험 및 메모 > Spring & Java' 카테고리의 다른 글
Consider defining a bean of type 'org.springframework.security.authentication.AuthenticationManager' in your configuration (0) | 2020.08.18 |
---|---|
spring.main.allow-bean-definition-overriding=true 에러 (0) | 2020.08.18 |
대용량 엑셀다운로드 SXSSFWorkbook (0) | 2020.06.22 |
Spring RestTemplate 이용한 OAuth Token 발급 (0) | 2020.04.24 |
SpringSecurity OAuth2 통신중 invalid_redirect_uri_parameter 에러 (0) | 2020.01.17 |
최근댓글