- 생성자 주입을 사용해라!
- 한번 밖에 호출 못하므로, 불변에 적합하다.
- 필드를 final로 설정할 수 있다.
- 생성자를 이용하므로, 필수에 적합하다.
- 생성자를 통해 직관적으로 주입하므로, NullPointException을 방지할 수 있다.
- set을 통한 주입
- 필드에 @Autowired
- 필드가 private이라 쉽게 주입 불가능
- 사용 추천 안함!
- 메서드를 통한 주입
- 여러 필드를 동시에 주입 가능
- 생성자나 setter를 통해 해결가능 하므로 거의 사용 안함!
lombok
- @Autowired 생략 후,
- @Getter, @Setter로 get, set을 간단하게 할 수 있음
- @RequiredArgsContructor 하면 final 필드의 생성자를 자동으로 만들어줌 (겉으론 보이지 않음)
콜백하는 법
- @PostConstruct를 통해 값을 넣어준다.
- @PreDestroy를 통해 소멸전 작업을 해준다.
- 코드를 고칠 수 없는 외부 라이브러리를 초기화, 종료하려고 하면 @Bean의 initMethod, destoryMethod를 사용하자.