Hibernate 如何从Spring MVC web应用程序中管理数据库设置?

Hibernate 如何从Spring MVC web应用程序中管理数据库设置?,hibernate,spring,Hibernate,Spring,在过去的几周里,我一直在使用SpringFramework3.0,这给我留下了深刻的印象。这是我的第一个Java项目。我的主要问题是,我找不到让最终用户从web应用程序中管理自己的数据库连接的方法。我正在进行的项目将安装在客户的计算机上,他们将提供所有连接信息。此时,每当数据源不可用时,我都会收到一个错误,我不确定如何处理: java.sql.SQLException: Network error IOException: Connection refused 我试图在xml配置中延迟加载数据

在过去的几周里,我一直在使用SpringFramework3.0,这给我留下了深刻的印象。这是我的第一个Java项目。我的主要问题是,我找不到让最终用户从web应用程序中管理自己的数据库连接的方法。我正在进行的项目将安装在客户的计算机上,他们将提供所有连接信息。此时,每当数据源不可用时,我都会收到一个错误,我不确定如何处理:

java.sql.SQLException: Network error IOException: Connection refused
我试图在xml配置中延迟加载数据源,但是在预实例化单例阶段启动应用程序时,数据源仍然被加载

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"     
    lazy-init="true">    
    <property name="driverClassName" value="${jdbc.driver}" />
    <property name="url"
      value="${jdbc.urlprefix}://${jdbc.server}:${jdbc.port}/${jdbc.database}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
    <property name="initialSize" value="2" />
    <property name="maxActive" value="5" />
</bean>

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"
    lazy-init="true">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
      <props>
        <prop key="hibernate.dialect">${hibernate.dialect}</prop>
        <prop key="hibernate.show_sql">false</prop>
      </props>
    </property>
    <property name="annotatedClasses">
      <list>
           ....
      </list>
    </property>
</bean>

<bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager"
    lazy-init="true">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

${hibernate.dial}
假的
....
我希望当数据库不可用或配置不正确时,我可以将用户重定向到不依赖于数据库连接的页面,以便管理设置。当IoC容器希望数据源从一开始就正确配置时,我不确定如何实现这一点


提前谢谢你

这是一个黑客。。。。使用内存中数据库作为默认配置


如果当系统启动时,它仍然是默认数据库,那么您知道发生了错误。

这是一个黑客。。。。使用内存中数据库作为默认配置

如果系统启动时,它仍然是默认数据库,则您知道发生了错误。

Spring是一个中间数据源,它将getConnection()调用路由到运行时确定的另一个目标数据源。将默认目标数据源设置为内存中的数据库,以便在加载应用程序上下文时有一个要连接的数据库。当用户提供连接信息时,AbstractRoutingDataSource子类可以路由到使用连接信息配置的另一个数据源。

Spring是一个中间数据源,它将getConnection()调用路由到运行时确定的另一个目标数据源。将默认目标数据源设置为内存中的数据库,以便在加载应用程序上下文时有一个要连接的数据库。当用户提供连接信息时,AbstractRoutingDataSource子类可以路由到使用连接信息配置的另一个数据源