JavaConfig Spring继承

时间:2016-04-05 15:55:22

标签: java spring inheritance javabeans spring-java-config

所以我有这样的类结构:

public class A {
    private String foo;

    protected A() {};

    protected A(String foo) {
        this.foo = foo;
    }

    public String getFoo() {
        return foo;
    }
}

public class B extends A {
    public B() {};

    public String getSomething(String test) {
        return super.getFoo() + test;
    }
}

public class C extends A {
    public C() {};

    public String getSomethingElse(String test) {
        return super.getFoo() + test;
    }
}

以下是我的java配置文件:

@Configuration
public class ConfigA {
    @Bean
    public A a() {
        return new A("FinalString");
    }
}

@Configuration
public class ConfigChildren {
    @Bean
    public B b() {
        return new B();
    }

    @Bean
    public C c() {
        return new C();
    }
}

显然问题是super值是子类为null,因此即使初始化配置,super.getFoo也将为null。

我想知道如何在配置中连接这两个。我知道在Spring XML中有一种方法可以使用parent字段,但我不知道如何在java配置中执行此操作。

我试过和单身人士一起玩,但我不认为这是真的适用或好的做法。有没有办法初始化子类的A而不将字符串变量传递给每个子进程并让它super(foo)。或者这是唯一的方法吗?

0 个答案:

没有答案