[java] Google Guice를 사용한 예제 코드

Google Guice는 의존성 주입(Dependency Injection)을 쉽게 구현할 수 있도록 도와주는 Java 프레임워크입니다. 이번에는 Guice를 사용하여 간단한 예제 코드를 작성해보겠습니다.

1. Maven 설정

먼저, Maven 프로젝트에 Guice를 추가해야 합니다. pom.xml 파일에 다음과 같은 의존성을 추가합니다.

<dependencies>
  <dependency>
    <groupId>com.google.inject</groupId>
    <artifactId>guice</artifactId>
    <version>4.2.3</version>
  </dependency>
</dependencies>

2. 인터페이스 및 구현체 정의

의존성 주입을 사용하기 위해 인터페이스와 그에 대한 구현체를 정의합니다.

public interface MessageService {
    String getMessage();
}

public class EmailMessageService implements MessageService {
    @Override
    public String getMessage() {
        return "This is an email message.";
    }
}

public class SmsMessageService implements MessageService {
    @Override
    public String getMessage() {
        return "This is an SMS message.";
    }
}

3. Guice 모듈 설정

Guice를 사용하기 위해 모듈을 설정합니다. 이 예제에서는 MessageModule이라는 Guice 모듈 파일을 생성합니다.

public class MessageModule extends AbstractModule {
    @Override
    protected void configure() {
        bind(MessageService.class).to(EmailMessageService.class);
        //bind(MessageService.class).to(SmsMessageService.class);
    }
}

4. 의존성 주입 실행

마지막으로, Guice를 사용하여 의존성 주입을 실행합니다. 다음은 Main 클래스에서 Guice를 설정하고 의존성을 주입하는 코드입니다.

public class Main {
    public static void main(String[] args) {
        Injector injector = Guice.createInjector(new MessageModule());
        MessageService messageService = injector.getInstance(MessageService.class);

        System.out.println(messageService.getMessage());
    }
}

위의 예제 코드에서는 bind(MessageService.class).to(EmailMessageService.class);를 주석 처리한 상태입니다. 만약 SmsMessageService를 사용하고 싶다면, 주석을 해제하고 다시 컴파일하면 됩니다.

이렇게 Guice를 사용하여 의존성 주입을 구현할 수 있습니다. Guice는 다양한 기능을 제공하므로 더 많은 내용을 알고 싶다면 Google Guice 공식 문서를 참고하시기 바랍니다.