0

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 アノテーションを適用したいメソッドについて言及することが可能です。

いろいろ探しましたが、どこにも見つかりませんでした。

ありがとうございます

4

1 に答える 1