Spring - 设置JNDI的属性值

时间:2012-08-29 13:54:41

标签: spring properties jndi

这是我之前的问题的一些后续内容 Spring and Hibernate - changing dialect

例如,如果我有这件.xml

<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="SpringMVCTest" />
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.dialect" >

            </prop>
        </props>
    </property>
</bean>

现在,我想将hibernate.dialect设置为jndi通过jdbc/dialect公开的值,但是当我放<jee:jndi-lookup jndi-name="jdbc/MyDataSource"/>时我得到Invalid content was found starting with element 'jee:jndi-lookup'. No child element is expected at this所以我怀疑我无法在prop中添加任何标记。

那么,有什么方法可以将jndi资源插入此属性吗?

1 个答案:

答案 0 :(得分:2)

不完全确定,但你应该能够在这里使用Spring-EL,如下所示:

<jee:jndi-lookup id="dialect" jndi-name="..." />


<bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="SpringMVCTest" />
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.dialect" >#{dialect}</prop>
        </props>
    </property>
</bean>