如何使hibernate.cfg.xml成为数据源bean

如何使hibernate.cfg.xml成为数据源bean,hibernate,Hibernate,我有一个hibernate.cfg.xml文件,但我想将其作为数据源bean引用。有没有办法做到这一点?我所拥有的只是: <beans:bean id="foo" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <beans:property name="configLocation" value="classpath:hibernate.cfg.xml"/> 但

我有一个hibernate.cfg.xml文件,但我想将其作为数据源bean引用。有没有办法做到这一点?我所拥有的只是:

<beans:bean id="foo" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <beans:property name="configLocation" value="classpath:hibernate.cfg.xml"/>

但它不是一个数据源。任何帮助都将不胜感激

为了添加一点上下文,我想在我的应用程序中集成Spring Security,为authentication manager提供数据库作为源的方法之一如下(摘自):



其中,“securityDataSource”是应用程序上下文中数据源bean的名称,指向数据库。

如果您使用hibernate,那么为什么要使用jdbc,您可以使用Springbean来实现这一点

<security:authentication-manager>
<security:authentication-provider ref="myAuthenticationProvider" />
</security:authentication-manager>
<bean id="myAuthenticationProvider" class="com.something.MyAuthenticationProvider"/>

其中MyAuthenticationProvider是实现AuthenticationProvider的Springbean。
您还可以查看下面的链接以获得更多帮助,如果您使用的是hibernate而不是为什么使用jdbc,那么您可以使用Springbean

<security:authentication-manager>
<security:authentication-provider ref="myAuthenticationProvider" />
</security:authentication-manager>
<bean id="myAuthenticationProvider" class="com.something.MyAuthenticationProvider"/>

其中MyAuthenticationProvider是实现AuthenticationProvider的Springbean。
您还可以查看以下链接以获得更多帮助,并且可以直接从spring创建,无需cfg.xml文件

方言 50 假的 假的 假的
您可以在此处配置所有Hibernate属性…

您可以直接从spring创建,无需cfg.xml文件

方言 50 假的 假的 假的 您可以在此处配置所有Hibernate属性…

您有两个选项:

  • 如果您没有在其他任何地方使用
    hibernate.cfg.xml
    ,您可以完全消除它,只使用Spring的配置(见下文)

  • 如果出于某种原因需要
    hibernate.cfg.xml
    (您在其他地方使用它),那么保留该文件并添加Spring配置


  • 示例配置(注意数据库访问位于单独的
    dataSource
    bean中)

    
    创建下降
    ...
    一些包裹
    org.postgresql.Driver
    ${jdbc.url}
    ${jdbc.user}
    ${jdbc.pw}
    
    您可以在

    中查看有关配置选项的更多信息。您有两个选项:

  • 如果您没有在其他任何地方使用
    hibernate.cfg.xml
    ,您可以完全消除它,只使用Spring的配置(见下文)

  • 如果出于某种原因需要
    hibernate.cfg.xml
    (您在其他地方使用它),那么保留该文件并添加Spring配置


  • 示例配置(注意数据库访问位于单独的
    dataSource
    bean中)

    
    创建下降
    ...
    一些包裹
    org.postgresql.Driver
    ${jdbc.url}
    ${jdbc.user}
    ${jdbc.pw}
    
    您可以在中查看有关配置选项的更多信息

    <beans:bean id="foo" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
           <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
                    ...
            </property>
            <property name="packagesToScan">
                <list>
                    <value>some.package</value>
                </list>
            </property>
        <property name="dataSource" ref="c3p0DataSource" />
    
    <bean id="c3p0DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
        scope="singleton"
            destroy-method="close">
            <property name="driverClass">
                <value>org.postgresql.Driver</value>
            </property>
            <property name="jdbcUrl">
                <value>${jdbc.url}</value>
            </property>
            <property name="user">
                <value>${jdbc.user}</value>
            </property>
            <property name="password">
                <value>${jdbc.pw}</value>
            </property>
        </bean>