SSH整合 创建SessionFactory

在spring中的 applicationContext.xml中配置如下信息

<!-- 配置数据连接类 -->      
    <bean id="dataSource"  class="org.apache.commons.dbcp.BasicDataSource">  
        <property name="driverClassName"  
            value="org.gjt.mm.mysql.Driver">  
        </property>  
        <property name="url" value="jdbc:mysql://localhost:3306/hibernate"></property> 
        <property name="username" value="root"></property>
        <property name="password" value="1"></property>  
   </bean>  

<!-- 配置session工厂类 -->      
    <bean id="sessionFactory"  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
        <property name="dataSource">  
            <ref bean="dataSource" />  
        </property>  
        <property name="hibernateProperties">  
            <props>  
                <prop key="hibernate.dialect">  
                    org.hibernate.dialect.MySQLDialect   
                </prop>  
                <prop key="hibernate.show_sql">true</prop>  
            </props>  
        </property>  
        <property name="mappingResources">  
          <value>org/it/po/User.hbm.xml</value>  
        </property>  
     </bean> 

 

而下如下创建SessionFactory 实例时总是报NollPointException

  Session session = sessionFactory.openSession();
  session.beginTransaction();
   User user = (User)session.load(User.class, 1);
  session.getTransaction().commit();

在网上找到解决方法 原因是spring.xml中没有加上default-autowire="byName" ,在注解的时候找不到实例化的sessionFactory,而注入了一个空的,在hibernate检查的时候就报那个错了。spring配置文件加入byName的方式注入bean后,就可以正确使用注解了

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"   
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd"
           default-autowire="byName" default-lazy-init="true">


原文地址:https://www.cnblogs.com/itmyhome/p/4131625.html