可以在没有构造函数参数的情况下使用PicoContainer(依赖注入)吗?

时间:2019-10-02 11:22:35

标签: java dependency-injection cucumber cucumber-java picocontainer

我需要使用PicoContainer实现依赖项注入,而无需传递构造函数参数,当前设置:

public class Shared_Data  {

    public Account_Pojo account_pojo;

    public Shared_Data(Account_Pojo account_pojo) {
        this.account_pojo = account_pojo;
    }

在上面的示例中,我需要使用PicoContainer来实现DI而不传递:Account_Pojo account_pojo作为构造函数的参数,这是否可能?

我没有运气就尝试过以下方法:

public class Shared_Data {
    public Account_Pojo account_pojo;

    public Shared_Data() {
    }

    public void setAccount_pojo(Account_Pojo account_pojo) {
        this.account_pojo = account_pojo;
    }

    public Account_Pojo getAccount_pojo() {
        setAccount_pojo(account_pojo);
        return account_pojo;
    }
}

1 个答案:

答案 0 :(得分:2)

您可以使用SetterInjection组件工厂[0]来设置微微容器。

pico = new DefaultPicoContainer(new SetterInjection());
pico.addComponent(Account_Pojo.class);

类似的事情应该起作用。

[0] http://picocontainer.com/setter-injection.html