-
[Spring] @PostConstruct란?(정의와 장점)웹 개발/Spring Framework 2018. 11. 12. 17:31
1. @PostConstruct란?
@PostConstruct는 의존성 주입이 이루어진 후 초기화를 수행하는 메서드이다. @PostConstruct가 붙은 메서드는 클래스가 service(로직을 탈 때? 로 생각 됨)를 수행하기 전에 발생한다. 이 메서드는 다른 리소스에서 호출되지 않는다해도 수행된다.
출처: Oracle Doc
2. 왜 사용하는가(장점)?
1) 생성자(일반)가 호출 되었을 때, 빈(bean)은 아직 초기화 되지 않았다. (예를 들어, 주입된 의존성이 없음)
하지만, @PostConstruct를 사용하면, 빈(bean)이 초기화 됨과 동시에 의존성을 확인할 수 있다.
+ 개인 의견으로 클래스 내에 @Autowired를 붙여서 객체를 사용할 때, 생성자가 필요하다면 @PostConstruct를 사용하면 될 것 같다. 빈(bean)이 등록되고 사용할 수 있으니까 말이다. 나도 그렇게 사용했고..
2) bean lifecycle에서 오직 한 번만 수행된다는 것을 보장할 수 있다. (WAS가 올라가면서 bean이 생성될 때 딱 한 번 초기화함) 그래서 @PostConstruct를 사용하면 bean이 여러번 초기화되는 것을 방지할 수 있다.
출처: StackOverFlow
3. 직접 적용했던 코드
12345678910111213@Servicepublic class BusinessServiceImpl implements BusinessService{@AutowiredDataDAO dataDAO;private ParamDTO paramDTO;@PostConstructpublic void initialize(){paramDTO = new ParamDTO();}}cs '웹 개발 > Spring Framework' 카테고리의 다른 글
[Spring] 스케줄러 만들어보기 (0) 2018.12.18 [Mybatis]mybatis에서 테이블의 언더바 컬럼을 카멜형식으로 변환해주는 설정 (0) 2018.11.20 @Transactional(선언적 트랜잭션) bean Id 지정해서 사용하기 (0) 2018.06.28 이클립스(Eclipse) 설정 내보내기/가져오기 방법 (0) 2018.06.27 JUnit에서 Controller 테스트 코드 작성하기(정리) (0) 2018.06.18