개발/Spring
[ Spring ] spring init 초기화 메소드 @PostConstruct
쩨이엠
2020. 7. 1. 17:52
728x90
반응형
Class에서 초기화 메소드를 실행하고 싶다
@Service
public class DataService {
static Map<String, Integer> qcPopMap;
static Map<String, String> qcItemMap;
static List<Integer> qcCycleList;
DataService(){
initMap();
}
private void initMap(){
qcStepConfigMap = new HashMap<>();
qcTargetDataMap = new HashMap<>();
qcCycleList = new ArrayList<>();
}
}
예전이라면 생성자를 만들어서 그 안에다 집어넣어서 초기화를 시켜줄 수 있었다
DataService(){
initMap();
}
생성자로 init을 하고싶지 않다면 @PostConstruct를 사용한다
@Service
public class DataService {
static Map<String, Integer> qcPopMap;
static Map<String, String> qcItemMap;
static List<Integer> qcCycleList;
@PostConstruct
private void initMap(){
qcStepConfigMap = new HashMap<>();
qcTargetDataMap = new HashMap<>();
qcCycleList = new ArrayList<>();
}
}
동일하게 실행되는것을 확인한다
WAS가 뜰 때 서비스가 생성되며 초기화 메소드가 실행된다
@PreDestroy
셧다운시 해야하는 작업이 있을 때 쓰는 어노테이션도 알아두면 좋겠다
728x90
반응형