Spring 如何实例化这个类及其依赖关系



不确定这是否与弹簧相关:

我有这样的豆类

class BeanClass {
    private ServiceA serviceA;
    private ServiceB serviceB;
    public BeanClass() {}
    public void setServiceA(ServiceA serviceA) {
        this.serviceA = serviceA;
    }
    public void setServiceB(ServiceB serviceB) {
        this.serviceB = serviceB;
    }
    public void callService() {
        serviceA.a();
        serviceB.b();
    }
}

及其配置:

<bean id="beanClass" class="BeanClass">
    <property name="serviceA" ref="serviceA"/>
    <property name="serviceB" ref="serviceB"/>
</bean>

但我在控制器类中使用 new 关键字实例化 bean:

class ControllerClass {
    public void someMethod() {
        BeanClass beanClass = new BeanClass();
        beanClass.callService();
    }
}

我的问题是 ServiceA 和服务 B 是如何正确实例化的? 因为我使用 new 来获取类对象,并且从未设置其字段成员。

你不想做:

BeanClass beanClass = new BeanClass(); 

简而言之,这就是Spring的IOC容器的全部意义所在。 你应该让 IOC 容器给你一个对 BeanClass 的引用

@Autowired
BeanClass myBeanClass;

*这并不完全完整,因为您需要为控制器进行一些额外的布线。

最新更新