#java #dependency-injection #playframework
#java #внедрение зависимостей #playframework
Вопрос:
Я попробовал пример внедрения зависимостей отсюда https://dzone.com/articles/guicing-play-framework
Ниже приведен мой контроллер кода:
public class TestController extends Controller{
@Inject
private Testing test;
public Result result() {
test.tt();
return ok();
}
}
Код интерфейса сервиса:
public interface Testing {
public String tt();
}
Код ServiceImpl:
public class Testingimpl implements Testing{
@Override
public String tt() {
return "test";
}
}
Я получаю эту ошибку
Исключение CreationException: Не удалось создать инжектор
Если я сделаю это, это сработает.
public class TestController extends Controller{
@Inject
private TestingImpl test;
public Result result() {
test.tt();
return ok();
}
}
Как решить эту проблему?
Ответ №1:
Вы забыли привязать интерфейс к своей реализации. Если у вас есть одна реализация, измените свой интерфейс следующим образом:
import com.google.inject.ImplementedBy;
@ImplementedBy(Testingimpl.class)
public interface Testing {
public String tt();
}
Для более сложного решения вы можете использовать программные привязки: https://www.playframework.com/documentation/2.7.x/JavaDependencyInjection#Programmatic-bindings