Spring bean 中的构造函数注入。是豆子了吗?

Spring constructor injection in bean. Is it a bean anymore?

我正在学习 spring 框架并且有一个非常基本的问题。我试图找到答案,但找不到,所以请耐心等待。我在 spring.

中看到了下面这种接线方式(这就是所谓的接线方式)
public class A {

    private B b;

    public A(B b) {
        this.b = b;
    }

    public B getB() {
        return b;
    }

    public void setB(B b) {
        this.b = b;
    }
}


public class B {

    private String foo;

    public String getFoo() {
        return foo;
    }

    public void setFoo(String foo) {
        this.foo = foo;
    }
}

所以我知道这个自动装配是使用构造函数注入完成的。然后在 context.xml 我有以下

    <bean id="a" class="A" autowire="constructor">
    </bean>

    <bean id="b" class="B" >
        <property name="foo" value="foo1" />
    </bean>

(我正在使用注释而不是 context.xml 学习配置,但在这里使用它是因为它似乎提供了更清晰的图片)。所以我的问题是,由于根据定义,bean 应该只有无参数构造函数和 getter 和 setter,不进行构造函数注入,因此取消它作为 bean 的资格?我在这里缺少什么明显的东西?

Bean 是一个加载项。虽然 JavaBean 规范至少在某一点上要求无参数构造函数,但这并不意味着 Spring beans 需要。