Play框架依赖注入不起作用

问题描述 投票:2回答:1

我从这里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();
  } 
}

怎么解决这个?

java dependency-injection playframework
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.