0
我在我的彈簧配置中使用了在tomcat中定義的數據源,如下面的xml所示。spring bean可選屬性
有時候可能會發生這個數據源可能沒有在tomcat的context.xml中定義。 在這種情況下,由於找不到myDS,上下文初始化失敗。
是否可以將數據源配置爲可選的,以便應用程序初始化不受影響? 有可當這個數據源訪問的運行時錯誤,這是可以接受的
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/myDS"/>
</bean>
<bean id="myEntityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="myDataSource" />
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml" />
<property name="packagesToScan" value="com..XX.XX" />
<property name="persistenceUnitName" value="myPU" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="#{systemProperties['showSql'] == null ? 'true' : systemProperties['showSql'] }" />
</bean>
</property>
<property name="persistenceUnitPostProcessors">
<list>
<ref bean="wrkflw-punitpostprocessor" />
</list>
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">#{systemProperties['dbDialect']}</prop>
</props>
</property>
</bean>
感謝 Muhad
是否有任何配置,我可以在XML中做?我不想爲此寫一個委託處理程序。如果JNDI失敗,SpringObjectFactory支持一個默認對象。我會嘗試。 – lives