我有一个遗留的spring应用程序,它是使用基于xml的配置构建的,我正在尝试使用二级缓存配置会话工厂。
我有ecache.xml
文件目前在资源文件夹中也hibernate.javax.cache.uri
属性需要ecache.xml
的绝对路径。
如果我提供URI为file:///c:/App/resources/ecache.xml
,它就可以工作。但这不利于部署和维护。
如何在基于spring xml的configuration中指定像classpath:ehcache.xml
或/WEB-INF/ehcahe.xml
这样的相对路径?
注意:我没有使用 Spring Boot 。
<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="packagesToScan">
<list>
<value>com.example.vl.model</value>
</list>
</property>
<property name="configLocation" value="classpath:hibernate.cfg.xml" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.javax.cache.uri">file:///c:/App/resources/ecache.xml</prop>
</props>
</property>
</bean>
2条答案
按热度按时间vbkedwbf1#
好的,我可以使用Spring EL在基于xml的配置中获取绝对uri。
ej83mcc02#
正确格式为classpath://ehcache.xml
以下内容不起作用:
类路径:ehcach.xml
classpath:/ehcache.xml
https://github.com/hibernate/hibernate-orm/blob/8461ba2078657caf58930b9485020fe89aff4afe/hibernate-core/src/main/java/org/hibernate/boot/registry/classloading/internal/ClassLoaderServiceImpl.java#L42