Das folgende Beispiel aus der Spring manual verwirrt mich aus dem Häuschen.Spring cache vs. cachemanger
<bean id="cacheManager"
class="org.springframework.cache.ehcache.EhCacheCacheManager"
p:cache-manager-ref="ehcache"/>
<!-- Ehcache library setup -->
<bean id="ehcache"
class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
p:config-location="ehcache.xml"/>
Die Namenskonvention verlangt, dass EhCacheManagerFactoryBean
einen Cache Manager erzeugt, genauer gesagt ist es eine net.sf.ehcache.CacheManager
Instanz. Dennoch heißt die Bohne ehcache
nicht ehcachemanager
. Die tatsächliche cacheManager
verweist jedoch auf diese Bean.
In Prosa könnte man sagen, dass man der Ehcache-Cache-Manager ist, während der andere der Spring-Cache-Manager ist (der von dem ehemaligen unterstützt wird).
Es wird noch schlimmer, wenn Sie die EhCacheFactoryBean
verwenden:
<bean
id="myCache"
class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<property name="cacheManager">
<ref local="ehcache" />
</property>
Es gibt eine Eigenschaft ist genannt cacheManager
, die eine Bohne ehcache
genannt verweist.
Habe ich etwas falsch verstanden oder ist das wirklich so verwirrend? Schlechtes Design oder nur schlechte Benennung im Beispiel?
Dies bestätigt, dass mein Verständnis korrekt war. Meinst du nicht, ehcacheManager wäre dann ein geeigneterer Name für diese Bohne? –
@ MarcelStör: Sie könnten Recht haben. Fühlen Sie sich frei, [pull-request] (https://github.com/SpringSource/spring-framework) mit korrigierter Dokumentation zu öffnen. –