Spring Cache メカニズムを備えたモジュールを実装しています。モジュールは汎用的で、さまざまなタイプのエンティティをキャッシュできます。そのため、Java コードを変更したくなく、それに応じてユーザーに applicationcontext.xml ファイルを構成してもらいたいと考えています。彼は applicationcontext.xml 内にさまざまなタイプのエンティティーの名前を入れることができ、コードは機能するはずです。例えば -
<context:annotation-config/>
<cache:annotation-driven cache-manager="cacheManager"/>
<context:component-scan base-package="com.nokia.oss.sure.adapter"/>
<bean id="NetworkEntityService" class="com.nokia.oss.sure.adapter.cache.NetworkEntityServiceImpl"/>
<bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
<property name="caches">
<set>
<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" name="NetworkEntity"/>
</set>
</property>
</bean>
彼は、NetworkEntity を ServiceEntity などに変更する場合があります。
したがって、Javaコードで言及する必要があります-
@CacheConfig(cacheNames={"NetworkEntity"})
または、すべてのメソッドに同じことを言えます-
@CachePut(cacheNames="NetworkEntity", key="#entity.sureName")
public Entity addEntity(Entity entity) {
return entity;
}
しかし、前に述べたように、キャッシュ名 "NetworkEntity" を Java コードに入れたくはありませんが、同じものを applicationcontext.xml ファイルに入れたいと考えています。出来ますか?
さらに、Java ファイル内のすべての注釈を省略することは可能ですか? 私が使用するだけであればAbstractApplicationContext context = new GenericXmlApplicationContext("applicationContext.xml");
、 applicationContext.xml ファイルで @Cacheable アノテーションを適用したいメソッドについて言及することが可能です。
いろいろ探しましたが、どこにも見つかりませんでした。
ありがとうございます