package com.edurt.sli.guice.multiple;
public class JavaService implements Service {
@Override
public void print(String source) {
System.out.println("Java Service " + source);
}
}
package com.edurt.sli.guice.multiple;
public class GuiceService implements Service {
@Override
public void print(String source) {
System.out.println("Guice Service " + source);
}
}
package com.edurt.sli.guice.multiple;
import com.google.inject.Guice;
import com.google.inject.Inject;
public class ApplicationMultipleProperty {
@Inject
public Service java;
@Inject
public Service guice;
public static void main(String[] args) {
ApplicationMultipleProperty application = Guice.createInjector(binder -> {
binder.bind(Service.class).annotatedWith(Java.class).to(JavaService.class);
binder.bind(Service.class).annotatedWith(com.edurt.sli.guice.multiple.Guice.class).to(GuiceService.class);
}).getInstance(ApplicationMultipleProperty.class);
application.guice.print("sss");
application.java.print("sss");
}
}
运行以上代码,就会出现以下错误
Exception in thread "main" com.google.inject.ConfigurationException: Guice configuration errors:
1) No implementation for com.edurt.sli.guice.multiple.Service was bound.
Did you mean?
* com.edurt.sli.guice.multiple.Service annotated with interface com.edurt.sli.guice.multiple.Java
* com.edurt.sli.guice.multiple.Service annotated with interface com.edurt.sli.guice.multiple.Guice
while locating com.edurt.sli.guice.multiple.Service
for field at com.edurt.sli.guice.multiple.Application.guice(Application.java:6)
while locating com.edurt.sli.guice.multiple.Application
2) No implementation for com.edurt.sli.guice.multiple.Service was bound.
Did you mean?
* com.edurt.sli.guice.multiple.Service annotated with interface com.edurt.sli.guice.multiple.Java
* com.edurt.sli.guice.multiple.Service annotated with interface com.edurt.sli.guice.multiple.Guice
while locating com.edurt.sli.guice.multiple.Service
for field at com.edurt.sli.guice.multiple.Application.java(Application.java:6)
while locating com.edurt.sli.guice.multiple.Application
2 errors
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1120)
at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1078)
at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1131)
at com.edurt.sli.guice.multiple.Application.main(Application.java:18)
文章评论(0)