2

我有使用基于 xml 的配置构建的遗留 spring 应用程序我正在尝试使用二级缓存配置会话工厂。

我有ecache.xml文件存在于资源文件夹中,hibernate.javax.cache.uri属性也需要ecache.xml.

如果我提供 URI,因为file:///c:/App/resources/ecache.xml它的工作原理。但这不利于部署、维护。

如何在基于 spring xml 的配置中指定相对路径classpath:ehcache.xml/WEB-INF/ehcahe.xml

注意:我没有使用弹簧靴。

<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>
4

1 回答 1

3

好的,我可以使用 Spring EL 在基于 xml 的配置中获取绝对 uri,如下所示。

<prop key="hibernate.javax.cache.uri">#{ new org.springframework.core.io.ClassPathResource("/ehcache.xml").getURI().toString()}</prop>
于 2018-09-25T14:35:49.197 回答