[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 공식 문서를 참고하시기 바랍니다.