Google Guice - Liên kết cố định
Guice cung cấp một cách để tạo liên kết với các đối tượng hoặc hằng giá trị. Hãy xem xét trường hợp chúng ta muốn định cấu hình url JDBC.
Tiêm bằng cách sử dụng chú thích @Named
@Inject
public void connectDatabase(@Named("JBDC") String dbUrl) {
//...
}
Điều này có thể được giải quyết bằng cách sử dụng phương thức toInstance ().
bind(String.class).annotatedWith(Names.named("JBDC")).toInstance("jdbc:mysql://localhost:5326/emp");
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;
import com.google.inject.name.Named;
import com.google.inject.name.Names;
public class GuiceTester {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new TextEditorModule());
TextEditor editor = injector.getInstance(TextEditor.class);
editor.makeConnection();
}
}
class TextEditor {
private String dbUrl;
@Inject
public TextEditor(@Named("JDBC") String dbUrl) {
this.dbUrl = dbUrl;
}
public void makeConnection(){
System.out.println(dbUrl);
}
}
//Binding Module
class TextEditorModule extends AbstractModule {
@Override
protected void configure() {
bind(String.class)
.annotatedWith(Names.named("JDBC"))
.toInstance("jdbc:mysql://localhost:5326/emp");
}
}
Đầu ra
Biên dịch và chạy tệp, bạn sẽ thấy kết quả sau.
jdbc:mysql://localhost:5326/emp