App Engine でのキャッシングに com.google.appengine.api.memcache.MemcacheService を使用して、ファクトリを使用して memcacheservice インスタンスを作成し、Spring をシングルトンとしてクラスに注入しています。
これが正しくて最適かどうか、また、lazy-init オプションまたは synchronized() を使用することのプラスまたはマイナスの効果について誰かが意見を持っているかどうかを尋ねています。この質問への回答が、この方法で memcacheservice を使用するための最良の方法になるようにしたいと思います。
ありがとう!
工場:
public class CacheFactory {
private static MemcacheService INSTANCE;
private CacheFactory() {
}
public static MemcacheService getInstance() {
if (INSTANCE == null) {
synchronized(CacheFactory.class){
INSTANCE = MemcacheServiceFactory.getMemcacheService();
}
}
return INSTANCE;
}
}
春豆:
<bean id="cacheFactory" class="com.nimbits.server.transactions.memcache.CacheFactory"
factory-method="getInstance" lazy-init="false" scope="singleton" >
</bean>
使用例:
<bean id="someService" class="SomeServiceImpl">
<property name="cacheFactory" ref="cacheFactory" />
</bean>