通过Spring将Google番石榴缓存构建器注入bean

kur*_*der 15 java spring guava

有人可以提供一个很好的片段来构建和CacheBuilder通过Springxml 将Google番石榴注入依赖bean 吗?

为了概括,我需要一些示例Spring来说明使用构建器模式构造对象.

Eti*_*veu 18

通过在下一个Guava版本(版本12)中添加CacheBuilderSpec,您将能够CacheBuilder使用CacheBuilder.from(String spec)静态工厂方法在xml中创建bean .

它看起来像这样:

<bean id="legendaryCacheBuilder"
      class="com.google.common.cache.CacheBuilder"
      factory-method="from">
    <constructor-arg value="maximumSize=42, expireAfterAccess=10m, expireAfterWrite=1h" />
</bean>
Run Code Online (Sandbox Code Playgroud)

您甚至可以使用Spring将配置字符串外部化为.properties文件PropertyPlaceholderConfigurer.

在那之前,你应该使用Sean Patrick Floyd的解决方案(它还具有类型安全的优点).


Sea*_*oyd 10

虽然可以使用该factory-method属性调用Spring XML中的任意方法,但您会发现Builder-Pattern样式链接调用几乎不可能.

相反,对于此类复杂方案,请使用基于JavaFactoryBean基于Java的容器配置.我担心,XML不会让你那么远.