我有xml。 (ehcache.xml中) 我想从属性文件(在类路径上)注入它的属性。
但是由于这个xml不是Spring托管bean,我无法这样做。
有任何建议如何克服这个问题?
xml:
...
properties="peerDiscovery=manual,rmiUrls=//**${other.node.hostname}**:41001/org.jasig.cas.ticket.ServiceTicket|//**${other.node.hostname}**:41001/org.jasig.cas.ticket.TicketGrantingTicket"
propertySeparator="," />
<cacheManagerPeerListenerFactory
class="net.sf.ehcache.distribution.RMICacheManagerPeerListenerFactory"
properties="port=41001,socketTimeoutMillis=5000" />
</ehcache>
我想从另一个属性文件中注入 $ {other.node.hostname} 。
但是我在运行时得到了这个:
引起:java.net.URISyntaxException:索引2:// $ {other.node.hostname} 的权限中的非法字符:41001 / org.jasig.cas.ticket.TicketGrantingTicket < / p>
感谢, 射线。
答案 0 :(得分:0)
它不起作用,因为它不是弹簧配置。但是如果你在spring中定义等效配置而不是ehcache文件,它应该可以工作:
<context:property-placeholder location="classpath:config.properties"/>
<bean id="myCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
<property name="cacheManager" ref="cacheManager"/>
<property name="maxElementsInMemory" value="${cache.maxMemoryElements}"/>
</bean>
最好的方法是尽可能少地使用ehcache.xml文件并在spring中配置所有内容,因为文件中的大多数选项都具有弹簧等效值。