[java] Guice의 객체 그래프(Object Graph) 생성
먼저, Guice를 사용하기 위해 프로젝트에 Guice 라이브러리를 추가해야 합니다. Maven을 사용한다면 아래와 같이 의존성(dependency)을 추가할 수 있습니다.
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.2.3</version>
</dependency>
의존성을 추가한 후에는 Guice의 Injector
인터페이스를 통해 객체 그래프를 생성할 수 있습니다. Injector
는 Guice가 객체를 생성하고 의존성을 주입하기 위해 사용하는 주요 인터페이스입니다.
import com.google.inject.Guice;
import com.google.inject.Injector;
public class Main {
public static void main(String[] args) {
// Guice의 Injector 인스턴스 생성
Injector injector = Guice.createInjector(new MyModule());
// 인젝터를 통해 의존성 주입이 필요한 객체 생성
MyService myService = injector.getInstance(MyService.class);
// 생성된 객체 사용
myService.doSomething();
}
}
위의 코드에서 MyModule
은 Guice 모듈을 나타내는 클래스입니다. Guice 모듈은 객체 생성 및 의존성 주입을 정의하는 역할을 합니다. 예를 들어, 아래와 같이 MyService
를 바인딩하는 모듈을 정의할 수 있습니다.
import com.google.inject.AbstractModule;
public class MyModule extends AbstractModule {
@Override
protected void configure() {
bind(MyService.class).to(MyServiceImpl.class);
}
}
위의 코드에서 bind()
메소드를 사용하여 MyService
인터페이스를 MyServiceImpl
클래스와 바인딩하였습니다. 이렇게 하면 MyService
인터페이스를 요청할 때 MyServiceImpl
객체를 반환합니다.
이제 Injector
를 통해 MyService
객체를 생성하고 사용할 수 있습니다. getInstance()
메소드를 사용하여 해당 클래스의 인스턴스를 가져옵니다.
Guice를 사용하여 객체 그래프를 생성하는 것은 매우 간단하고 강력한 기능입니다. 의존성 주입을 통해 코드의 유연성과 확장성을 크게 향상시킬 수 있습니다.
더 자세한 내용은 Guice 공식 문서를 참조하시기 바랍니다.