SSH整合创建SessionFactory

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

<!– 配置数据连接类 –>      
  1. <bean id=”dataSource” class=”org.apache.commons.dbcp.BasicDataSource”>
  2. <property name=”driverClassName”
  3. value=”org.gjt.mm.mysql.Driver”>
  4. </property>
  5. <property name=”url” value=”jdbc:mysql://localhost:3306/hibernate”></property>
  6. <property name=”username” value=”root”></property>
  7. <property name=”password” value=”1″></property>
  8. </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">

标签