Google Guice - Ứng dụng đầu tiên
Hãy tạo một ứng dụng dựa trên bảng điều khiển mẫu, nơi chúng ta sẽ chứng minh việc tiêm phụ thuộc bằng cách sử dụng cơ chế liên kết Guice từng bước.
Bước 1: Tạo giao diện
//spell checker interface
interface SpellChecker {
public void checkSpelling();
}
Bước 2: Tạo triển khai
//spell checker implementation
class SpellCheckerImpl implements SpellChecker {
@Override
public void checkSpelling() {
System.out.println("Inside checkSpelling." );
}
}
Bước 3: Tạo mô-đun ràng buộc
//Binding Module
class TextEditorModule extends AbstractModule {
@Override
protected void configure() {
bind(SpellChecker.class).to(SpellCheckerImpl.class);
}
}
Bước 4: Tạo lớp phụ thuộc
class TextEditor {
private SpellChecker spellChecker;
@Inject
public TextEditor(SpellChecker spellChecker) {
this.spellChecker = spellChecker;
}
public void makeSpellCheck(){
spellChecker.checkSpelling();
}
}
Bước 5: Tạo Injector
Injector injector = Guice.createInjector(new TextEditorModule());
Bước 6: Lấy đối tượng với sự phụ thuộc được đáp ứng.
TextEditor editor = injector.getInstance(TextEditor.class);
Bước 7: Sử dụng đối tượng.
editor.makeSpellCheck();
Hoàn thành ví dụ
Tạo một lớp java có tên là GuiceTester.
GuiceTester.java
import com.google.inject.AbstractModule;
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
public class GuiceTester {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new TextEditorModule());
TextEditor editor = injector.getInstance(TextEditor.class);
editor.makeSpellCheck();
}
}
class TextEditor {
private SpellChecker spellChecker;
@Inject
public TextEditor(SpellChecker spellChecker) {
this.spellChecker = spellChecker;
}
public void makeSpellCheck(){
spellChecker.checkSpelling();
}
}
//Binding Module
class TextEditorModule extends AbstractModule {
@Override
protected void configure() {
bind(SpellChecker.class).to(SpellCheckerImpl.class);
}
}
//spell checker interface
interface SpellChecker {
public void checkSpelling();
}
//spell checker implementation
class SpellCheckerImpl implements SpellChecker {
@Override
public void checkSpelling() {
System.out.println("Inside checkSpelling." );
}
}
Đầu ra
Biên dịch và chạy tệp, bạn sẽ thấy kết quả sau.
Inside checkSpelling.