私のアプリケーションは、異なる環境で動作することができます。環境ごとに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を条件付きでインスタンス化する別の方法がありますか?私が豆のJavaコードにアクセスすることはできないので、ELだけを使用するとよいでしょう。なぜなら、彼らはサードパーティ製のライブラリからのものだからです。
私が正しく理解していると、インスタンス化されているが使用されていないSpring Beanがあり、これが原因でメモリの問題が発生すると考えられます。そうですか?それらの未使用シングルトンテンプレートBeanがあなたの記憶上の問題を引き起こすものであることを明確に診断しましたか?それとも暗闇の中でのショットですか? –
これらのテンプレートBeanには、別のオブジェクトへの参照が含まれていて、合計で1000個の追加オブジェクトがあります。 – user710818
これらのオブジェクトのそれぞれが10 KBのメモリを消費する場合、それでも10 MBしかありません。それを修正しようとする前に、実際に問題が発生していることを確認してください。 –