gpt4 book ai didi

java - 使用和理解 picoContainer

转载 作者:行者123 更新时间:2023-11-30 09:12:00 25 4
gpt4 key购买 nike

我正在尝试在我的项目中使用 picoContainer。我对此知之甚少,但想试一试。

据我了解,我必须创建一个 picoContainer 并使用它注册组件。我这样做了

public static PicoContainer getPicoContainer(){
final MutablePicoContainer pico = new DefaultPicoContainer();
pico.registerComponentImplementation(X.class);
pico.registerComponentImplementation(A.class);
pico.registerComponentImplementation(C.class);
pico.registerComponentImplementation(V.class);
pico.registerComponentImplementation(T.class);
pico.registerComponentImplementation(D.class);

return pico;
}

现在我的问题是,要让任何组件获取另一个组件,它都需要 pico 上的句柄。要访问它需要执行此操作的任何组件

A juicer = pico.getComponent(A.class);

那么,在它们每个的构造函数中,我需要传入 pico 对象吗?我可以很容易地用工厂替换它。那有什么意义呢?我确定我在这里遗漏了一些东西。将不胜感激任何帮助。

最佳答案

常见的模式是在某个地方有一个主容器的工厂。对于独立应用程序,它可能是“public static void main()”入口点,对于网络应用程序,它可能是前端 Controller servlet 或过滤器或上下文监听器(pico 具有监听器案例的支持类)。因此,在入口点,您按照上面提到的“public static PicoContainer getPicoContainer()”方式配置容器,然后您需要将控制权传递给容器中的入口点。好的方法是至少有一个容器的组件来实现生命周期接口(interface)(http://picocontainer.codehaus.org/lifecycle.html),然后启动()容器并连接所有东西。在正常情况下,除了入口配置和特殊工厂或事务划分等之外,你不应该访问容器本身。

关于java - 使用和理解 picoContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21841460/

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