Conclusion
Bean Injection은 3가지(Felid Injection, Constructor Injection, Setter Injection)가 있으며, 일반적인 상황에서 Constructor Injection을 사용하자.
Why
- 순환참조 방지
- Constructor Injection은 Build시 오류를 Emit하기 때문에 순환참조에 대한 사전 방지 가능
- Constructor Injection은 Build시 오류를 Emit하기 때문에 순환참조에 대한 사전 방지 가능
- POJO 기반 테스트 용이
TestObject testObject = new TestObject(); TestClass testClsass = new TestClass(testObject); testClass.functionTest();
- immutable( final )
- final 선언을 통해 Bean 생성시 생성한 instance의 불변성을 지킬수 있다.
Lombok
lombok annotation을 통해 편리하게 사용 가능.
@RequireArgsConstructor
public TestController(){
private final TestService testService;
}