ilz 2016-12-20 04:53 采纳率: 0%
浏览 1201

java-spring配置数据源自动关闭

在使用spring 管理cp30数据源的时候,
建了个BaseDAO 用于创建hinetnatefactory的session对象
发现BaseDAO在初始时是可以创建session对象的
但是再次调用时数据源关闭了,无法继续使用session 请问是什么原因

public class BaseDAO {

private SessionFactory sessionFactory;
private DataSource datasource;
    public DataSource getDatasource() {
    return datasource;
}

public void setDatasource(DataSource datasource) {
    System.out.println("datasource--"+datasource.toString());
    this.datasource = datasource;
}

    public SessionFactory getSessionFactory(){
        System.out.println("get SessionFactory---"+sessionFactory);
    return sessionFactory;
}

public void setSessionFactory(SessionFactory sessionFactory){
    System.out.println("sessionFactory--"+sessionFactory.toString());
    //上面是有sessionFatory对象的
    this.sessionFactory=sessionFactory;
}

public Session getASession(){
    System.out.println("session dd " + this.datasource);//这里的datasource为null了
    Session session=sessionFactory.openSession();//这里的sessionFactory为null
    return session;
}

以下为applicationContext.xml 配置
 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
    >
    <property name="driverClass">
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property name="jdbcUrl">
        <value>jdbc:mysql://localhost:3306/ma</value>
    </property>
    <property name="user">
        <value>root</value>
    </property>
    <property name="password">
        <value>root</value>
    </property>
    <property name="maxPoolSize">
        <value>40</value>
    </property>
    <property name="minPoolSize">
        <value>10</value>
    </property>
    <property name="initialPoolSize">
        <value>10</value>
    </property>
</bean>

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource">
    </property>
     <property name="hibernateProperties">
    <props>
        <prop key="hibernate.dialect">
        org.hibernate.dialect.MySQLDialect
        </prop>
    </props>
    </property>
    <property name="mappingResources">
        <list>
            <value>com/hibernate/shop/bean/User.hbm.xml</value>
        </list>
    </property>

     <bean id="baseDAO" class="com.hibernate.shop.factory.BaseDAO" scope="singleton">
    <property name="sessionFactory"   ref="sessionFactory"/>
    <property name="datasource" ref="dataSource"/>
</bean>

    十分不解~
    谢谢~谢谢~
  • 写回答

3条回答 默认 最新

  • zqbnqsdsmd 2016-12-20 04:57
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64