关于spring的一些问题,求大神指教,急~~~~~
最近在做小的spring项目,遇到一个问题比如有一个类叫Carholder里面有一个属性叫car,还有一个类叫Car
现在我想创建三个Car的实例
<bean id="car1" class="Car">
<bean id="car2" class="Car">
<bean id="car3" class="Car">
还有3个Carholder实例
<bean id="carholder1" class="Carholder">
<property name="car" ref="car1"></property>
</bean>
<bean id="carholder2" class="Carholder">
<property name="car" ref="car2"></property>
</bean>
<bean id="carholder3" class="Carholder">
<property name="car" ref="car3"></property>
</bean>
Carholder里面有getter setter方法,但是setter方法没有被调用
但是如果我把car1改成car,其他不变
<bean id="car" class="Car">
<bean id="car2" class="Car">
<bean id="car3" class="Car">
<bean id="carholder1" class="Carholder">
<property name="car" ref="car"></property>
</bean>
<bean id="carholder2" class="Carholder">
<property name="car" ref="car2"></property>
</bean>
<bean id="carholder3" class="Carholder">
<property name="car" ref="car3"></property>
</bean>
结果carholder1,carholder2,carholder3都注入成功,但是car注入的是第一个car的实例,完全不懂为什么,求大神赐教 Spring Bean 类 实例 --------------------编程问答-------------------- spring默认是单类的。
<bean id="car" class="Car" scope="prototype">
这样试试 --------------------编程问答-------------------- --------------------编程问答--------------------
可是我希望创建3个单例,应该怎么做 --------------------编程问答-------------------- <bean id="car" class="Car" scope="prototype">
这种方式创建car时,每次都是新的实例 --------------------编程问答--------------------
这样需要每次都创建,效率很低啊 --------------------编程问答-------------------- ?你想在启动的时候加载好car的bean --------------------编程问答--------------------
是的阿 --------------------编程问答-------------------- 考虑这种做法:
1:类car提供三个静态工厂方法,每个方法都返回new Car();
然后配置bean实例
比如:
<bean id="car" class="" factory-method="createInstance"/>
<bean id="car2" class="" factory-method="createInstance2"/>
<bean id="car3" class="" factory-method="createInstance3"/>
2.专门提供一个工程类,编写三个工长方法,每个方法返回new Car();
<bean id="carFactory" class="">
<!-- inject any dependencies required by this bean -->
</bean>
<bean id="car"
factory-bean="carFactory"
factory-method="createCarInstance"/>
<bean id="car2"
factory-bean="carFactory"
factory-method="createCarInstance2"/>
<bean id="car3"
factory-bean="carFactory"
factory-method="createCarInstance3"/>
补充:Java , Web 开发