首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用和理解picoContainer

使用和理解picoContainer
EN

Stack Overflow用户
提问于 2014-02-18 07:34:06
回答 1查看 1.3K关注 0票数 2

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

据我所知,我必须创建一个picoContainer并用它注册组件。这是我做的

代码语言:javascript
复制
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上的句柄。要访问任何组件,它需要这样做

代码语言:javascript
复制
A juicer = pico.getComponent(A.class);

那么,在它们的构造函数中,我需要传入pico对象吗?我可以很容易地用一个工厂来代替它。那又有什么意义呢?我肯定我漏掉了什么。都会很感谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-02-19 15:28:10

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21841460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档