首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PIcocontainer

如何使用PIcocontainer
EN

Stack Overflow用户
提问于 2013-07-03 13:12:05
回答 1查看 1.1K关注 0票数 2

我在一个研究项目中使用Pico容器。我对如何使用它有疑问。

以下是我的课程:

代码语言:javascript
复制
public class DependencySupplier {

    public static MutablePicoContainer pico;

    static {
        pico = new DefaultPicoContainer();
        pico.registerComponentImplementation(CollectionDao.class, CollectionDaoImpl.class);
        pico.registerComponentImplementation(ReadingDao.class, ReadingDaoImpl.class);
        pico.registerComponentImplementation(CollectionDetails.class, CollectionDetailsImpl.class);
        pico.registerComponentImplementation(Reading.class, ReadingImpl.class);
    }

    public static CollectionDao getCollectionDao() {
        return (CollectionDao) pico.getComponentInstance(CollectionDao.class);
    }

    public static ReadingDao getReadingDao() {
        return (ReadingDao) pico.getComponentInstance(ReadingDao.class);
        }   
    }

我的怀疑是:

  1. 这是使用pico的正确方式吗?
  2. AddressImpl类如下所示: 公共类AddressImpl实现地址{私有字符串address1;私有字符串address2;私有字符串address3;私有字符串address4;公共AddressImpl(String address1,String address2,String address3,String address4) { super();this.address1 = address1;this.address2 = address2;} public String getAddress1() {返回address1;} public voidsetAddress1( String address1) {getAddress1=;}公共字符串getAddress2() {返回address2;}公共空setAddress2(字符串address2) { this.address2 = address2;}公共字符串getAddress3() {返回address3;}}

如何用上面的实现实例化Address对象,因为'address1‘和'address2’必须由用户提供,并且在运行时可用?

EN

回答 1

Stack Overflow用户

发布于 2013-07-09 08:34:37

嗯,实际上这不是一个正确的方式使用野餐..。

在大多数情况下,您不应该直接从pico上下文中查找组件。

你需要在pico注册你的DAO,服务,其他逻辑类.他们需要获得引用的DAOs等,只需将它们声明为构造函数参数。然后,在引导类中,注册需要从容器中获取组件的主逻辑类,并调用其方法(或使用可启动生命周期),至于地址实例,我不确定您是否需要从pico中实例化它们(因为我没有看到容器对地址可能满足的任何依赖关系,那么又有什么意义呢?)

但是,如果您需要,您可以注册准备好的实例,如pico.registerComponentInstance(新的AddressImpl(.))然后,可以使用构造函数参数Address[]加载项注入所有可用实例。还有另一种方法,直接从pico实例化几个实例,但我认为您只是不需要它

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

https://stackoverflow.com/questions/17448991

复制
相关文章

相似问题

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