쩨이엠 개발 블로그

[ Spring ] spring init 초기화 메소드 @PostConstruct 본문

개발/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
반응형
Comments