我的應用程序可以運行在不同的環境中。我需要爲每個環境配置MY數據模型。數據模型是使用Spring bean構建的。Spring是否允許將抽象bean轉換爲非抽象?
我使用Spring 3.0.5,所以我不能有條件地加載資源。 我有這樣的:
<bean id="Template1" class="...
..............
</bean>
<bean id="Template2" class="...
..............
</bean>
<bean id="Template3" class="...
..............
</bean>
................
<bean id="Factory" ...>
<propety name="type"><value>${app.type}</value></property>
<property>
<map>
<entry key="Temlate1" value-ref="Template1">
<entry key="Temlate2" value-ref="Template1">
<entry key="Temlate3" value-ref="Template1">
..................
房地產豆創建由工廠:
<bean id="real" factory="Factory" factory-method="getInstance"
<constructor-arg>Factory</.....
.............
</bean>
Java代碼:
class Factory {
private Map<String, Object> templateBeans;
Object getInstance(String name) {
return templateBeans.get(name);
...........
是否有可能以某種方式來聲明抽象模板豆?因爲我有很大的記憶問題。另一種方式是否存在在版本3.1之前在Spring中有條件地實例化不同的bean?只使用EL是很好的,因爲我不能訪問bean的Java代碼,因爲它們來自第三方庫。
如果我理解正確,你有實例化但未使用的Spring bean,並且您認爲這會導致內存問題。是對的嗎?你有沒有明確診斷出那些未使用的singleton模板bean會導致你的記憶問題?還是在黑暗中拍攝? –
這些模板bean包含對另一個模板bean的引用,總共有1000個附加對象。 – user710818
如果每個對象都消耗10 KB的內存,那麼仍然只有10 MB。確保它們在解決問題之前確實會造成真正的問題。 –