gpt4 book ai didi

java - 如何使用 PicoContainer 管理动态依赖项?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:42:54 26 4
gpt4 key购买 nike

假设我有两个类 A 和 B,B 依赖于 A。

public class A {}

public class B {
public B(A a) {}
}

在单个 PicoContainer 中解析 B 很容易。

    final MutablePicoContainer root = new PicoBuilder().build();
root.addComponent(new A());
root.addComponent(B.class, B.class);
System.out.println(root.getComponent(B.class));

但我想为不同的 session 使用不同的 B 实例,以及 A 的可变实例。我正在考虑这样的事情。

    // during startup
final MutablePicoContainer root = new PicoBuilder().build();
root.addComponent(B.class, B.class);

// later, initialize sessions
final MutablePicoContainer session = new PicoBuilder(root)
.implementedBy(TransientPicoContainer.class)
.build();
session.addComponent(new A());

// some request
System.out.println(session.getComponent(B.class));

上面的代码不起作用,因为当向 session 询问 B 时,它向父容器 root 询问它。 B 在那里找到,但仅在 root 及其父级中解析,导致 UnsatisfiableDependenciesException。

请问有什么好的方法可以实现吗?或者这是一种反模式,我以错误的方式解决了问题?

最佳答案

解决不存在的性能问题不是一个好的方法。您是否进行了任何分析以验证问题?

如果没有,请考虑先这样做。

关于java - 如何使用 PicoContainer 管理动态依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/852579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com