不确定这是否与弹簧相关:
我有这样的豆类
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;
*这并不完全完整,因为您需要为控制器进行一些额外的布线。