[java] Guice의 필드 주입(Field Injection)

Guice는 Java에서 의존성 주입(Dependency Injection)을 구현하기 위한 프레임워크입니다.

필드 주입은 Guice에서 제공하는 의존성 주입 방식 중 하나인데, 이는 클래스의 필드에 직접 의존하는 객체를 주입하는 방식입니다.

필드 주입 사용 방법

Guice를 사용하여 필드 주입을 구현하려면 다음 단계를 따라야 합니다.

  1. 의존성을 주입할 클래스를 정의합니다.
    public class MyClass {
     @Inject
     private MyDependency myDependency;
        
     // ...
    }
    
  2. 필드에 @Inject 애노테이션을 사용하여 Guice에 주입 요청을 알립니다.

  3. 필드에 주입할 의존성을 정의합니다.
    public class MyModule extends AbstractModule {
     protected void configure() {
         bind(MyDependency.class).to(MyDependencyImpl.class);
     }
    }
    
  4. AbstractModule을 확장하는 MyModule 클래스를 생성하고 configure 메서드에서 필드에 주입할 의존성의 구현체를 바인딩합니다.

  5. Guice를 사용하여 필드 주입을 수행합니다.
    public class Main {
     public static void main(String[] args) {
         Injector injector = Guice.createInjector(new MyModule());
         MyClass myClass = injector.getInstance(MyClass.class);
            
         // ...
     }
    }
    

위 예시에서는 MyClassmyDependency 필드에 MyDependencyImpl 객체가 주입됩니다.

필드 주입의 장단점

장점

단점

결론

Guice의 필드 주입은 간결한 코드와 생산성 향상을 제공하는 동시에 테스트 가능성에 일부 제약이 있습니다. 필드 주입을 사용하는지 여부는 개발자의 판단에 달려있습니다.

더 자세한 내용은 Guice 공식 문서를 참고하시기 바랍니다.