etc/TIL
필드에 생성된 Repository와 Service를 private final로 생성하는 이유
기억용블로그
2022. 4. 26. 18:55
728x90
IoC를 통한 DI를 받는 방법은 @Autowired를 통한 방법과 생성자를 기반으로 받을 수 있다.
@RequiredConstructor를 통해(혹은 그냥 생성자를 통해) private final Repository repository와 같이 주입을 받게 되면 불변성을 얻게 되어 실행 중 객체가 변하는 것을 막을 수 있고 이로 인해 오류를 방지할 수 있다.
코드의 품질도 높아지며 순환 참조를 방지하는 등의 부가적인 이득도 있다.
Autowired를 지양하고 private final을 생성자로 생성하도록 하자