相关疑难解决方法(0)

带CDI的MVP; 避免循环依赖

我尝试用MVP范例构建一个Webapp.因为我希望API干净并使一切都易于测试,我尝试通过Contructor Injection注入所有可能的东西.现在我来到了一个可以看到多个Textfields的视图.当数据库中存在值时,这些文本字段会被演示者填充,因此我的演示者需要视图的引用,但是vie显然也需要引用者的引用.CDI告诉我将Presenter注入到视图中,否则由于循环依赖性而无法实现.是否可以通过setter方法避免在视图中设置演示者?代码看起来像这样:

视图:

public Class ViewImpl implements view {

private PresenterImpl presenter;
private User user;

@Inject
public ViewImpl(PresenterImpl presenter, User user) {
   super();
   this.presenter = presenter;
   this.user = user;
}

public void attach() {
   super.attach();

   presenter.fetchNames();

   showUser();
   }

public void setUser(User user) {
   this.user = user;
   }
}
Run Code Online (Sandbox Code Playgroud)

主持人:

public Class PresenterImpl implements Presenter {

private ViewImpl view;
private User user;

@Inject
public PresenterImpl(ViewImpl view, User user) {
   this.view = view;
   this.user = user;
}


public void fetchNames() {
   fetchFromDB(); …
Run Code Online (Sandbox Code Playgroud)

java cdi

9
推荐指数
2
解决办法
3308
查看次数

处理CDI中的循环依赖

我有这样的情况.我看不到任何错误,但我没有得到我的结果.

@ApplicationScoped
public class A {

    private B b;


    @Inject
    public A(B b) {
        this.b = b;
    }
}

@Singleton
public class B {

    private A a;


    @Inject
    public B(A a) {
        this.a = a;
    }
}
Run Code Online (Sandbox Code Playgroud)

这种类型的依赖注入是错误的吗?

谁能帮我这个.

java dependency-injection cdi

7
推荐指数
2
解决办法
3426
查看次数

标签 统计

cdi ×2

java ×2

dependency-injection ×1