2022. 11. 18. 17:25
@PostConstruct Spring2022. 11. 18. 17:25
1. @PostConstruct란?
@PostConstruct는 의존성 주입이 이루어진 후 초기화를 수행하는 메서드이다. @PostConstruct가 붙은 메서드는 클래스가 service(로직을 탈 때? 로 생각 됨)를 수행하기 전에 발생한다. 이 메서드는 다른 리소스에서 호출되지 않는다해도 수행된다.
출처: Oracle Doc
2. 왜 사용하는가(장점)?
1) 생성자(일반)가 호출 되었을 때, 빈(bean)은 아직 초기화 되지 않았다. (예를 들어, 주입된 의존성이 없음)
하지만, @PostConstruct를 사용하면, 빈(bean)이 초기화 됨과 동시에 의존성을 확인할 수 있다.
+ 개인 의견으로 클래스 내에 @Autowired를 붙여서 객체를 사용할 때, 생성자가 필요하다면 @PostConstruct를 사용하면 될 것 같다. 빈(bean)이 등록되고 사용할 수 있으니까 말이다. 나도 그렇게 사용했고..
2) bean lifecycle에서 오직 한 번만 수행된다는 것을 보장할 수 있다. (WAS가 올라가면서 bean이 생성될 때 딱 한 번 초기화함) 그래서 @PostConstruct를 사용하면 bean이 여러번 초기화되는 것을 방지할 수 있다.
출처: StackOverFlow
3. 직접 적용했던 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
|
@Service
public class BusinessServiceImpl implements BusinessService{
@Autowired
DataDAO dataDAO;
private ParamDTO paramDTO;
@PostConstruct
public void initialize(){
paramDTO = new ParamDTO();
}
}
|
'Spring' 카테고리의 다른 글
SpringBoot AutoConfiguration (0) | 2022.11.20 |
---|