注解方式sessionFactory为空

a825304840 2014-08-11 02:03:25
我在BaseDaoImple:
public class BaseDaoImpl<T> implements BaseDao<T>{
@Resource
protected static SessionFactory sessionFactory;
}
在UserDaoImpl中
@Service
public class UserDaoImpl extends BaseDaoImpl<User> implements UserDao{

}

applicationContext.xml配置文件
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 指定hibernate配置文件指定路径 -->
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
<!-- 配置c3p0数据库连接池 -->
<property name="dataSource">
<bean class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 数据库连接信息 -->
<property name="jdbcUrl" value="${jdbcUrl}"></property>
<property name="driverClass" value="${driverClass}"></property>
<property name="user" value="${user}"></property>
<property name="password" value="${password}"></property>
</bean>
</property>
</bean>

这个问题很是烦躁,困扰了我两天已经。求救
...全文
793 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
lansetiankong_yiyi 2018-09-04
  • 打赏
  • 举报
回复
1、是否开启了注解功能
2、是否配置路径并扫描到文件
老王就是我 2018-08-28
  • 打赏
  • 举报
回复
一般都是用auto的吧?
大火yzs 2018-08-27
  • 打赏
  • 举报
回复


Spring 注解注入 SessionFactory 空指针异常,同样的问题,求解
我去找三叶了 2017-02-07
  • 打赏
  • 举报
回复

public class BaseDaoImpl {

  private SessionFactory sessionFactory;

  public void setSessionFactory(SessionFactory sessionFactory) {
    this.sessionFactory = sessionFactory;
  }

  protected Session getSession() {
    return sessionFactory.getCurrentSession();
  }
}

 <!-- 数据库的信息 -->
       <bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
              <property name="driverClassName" value="${jdbc.driverClassName}" />
              <property name="url" value="${jdbc.url}" />
              <property name="username" value="${jdbc.username}" />
              <property name="password" value="${jdbc.password}" />
       </bean>

       <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
              <!-- 数据来源(数据库的信息) -->
              <property name="dataSource" ref="dataSource" />
              <!-- 扫描的包的路径 -->
              <property name="packagesToScan" value="org.wangy.webtest.model" />
              <!-- hibernate的属性(hibernate进行的操作)-->
              <property name="hibernateProperties">
                     <props>
                            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                            <prop key="hibernate.show_sql">true</prop>
                            <prop key="hibernate.hbm2ddl.auto">update</prop>
                            <prop key="hibernate.format_sql">true</prop>
                     </props>
              </property>
       </bean>

我去找三叶了 2017-02-07
  • 打赏
  • 举报
回复

@Resource
protected static SessionFactory sessionFactory;
改成
@Resource
private SessionFactory sessionFactory;
玉米青豆 2017-02-05
  • 打赏
  • 举报
回复
我也遇到这样的问题了,不知道楼主解决没有
microhex 2015-02-19
  • 打赏
  • 举报
回复
static 的sessionFactory 不能被注入 去掉static。。。。。。。
旺旺小学酥 2015-02-15
  • 打赏
  • 举报
回复
@Autowired @Qualifier("sessionFactory") private SessionFactory sessionFactory;
star_Tony 2014-10-10
  • 打赏
  • 举报
回复
楼主问题解决没啊
xuan_1002xuan 2014-08-15
  • 打赏
  • 举报
回复
public class BaseDaoImpl<T> implements BaseDao<T>{ @Resource protected static SessionFactory sessionFactory; } 在上面的方法加setter方法试试
浮云若水 2014-08-15
  • 打赏
  • 举报
回复

@Resource(name="sessionFactory")
    public void setSuperSessionFactory(SessionFactory sessionFactory){
        super.setSessionFactory(sessionFactory);
    }
Resource 后面记得标记 name=“” 版本问题有写版本是不能自动识别的
猎魔人-不纯 2014-08-13
  • 打赏
  • 举报
回复
百度 注解是否可以继承 二楼正解
a825304840 2014-08-11
  • 打赏
  • 举报
回复
二楼的试过了,也是空的。 public SessionFactory getSessionFactory(){ // // ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); // sessionFactory = (SessionFactory)ac.getBean("sessionFactory"); // System.out.println(sessionFactory+"======获得sessionFactory"); // return sessionFactory; // } 这样子是可以获得的。但是为什么注入就是不行呢?
a825304840 2014-08-11
  • 打赏
  • 举报
回复
非static的也是空
  • 打赏
  • 举报
回复
建议楼主按照2楼写法试试。
lonelyk 2014-08-11
  • 打赏
  • 举报
回复
我觉得是你的bean没有被扫描到
Anoth 2014-08-11
  • 打赏
  • 举报
回复
static的当然无法注入啦
a825304840 2014-08-11
  • 打赏
  • 举报
回复
还是空的啊。
小灯光环 2014-08-11
  • 打赏
  • 举报
回复
这样写试试:

private SessionFactory sessionFactory;

@Resource
public void setSessionFactory(SessionFactory sessionFactory)
{
	this.sessionFactory = sessionFactory;
}
a825304840 2014-08-11
  • 打赏
  • 举报
回复
@Test public void testSessionFactory(){ SessionFactory sessionFactory = (SessionFactory)ac.getBean("sessionFactory"); System.out.println(sessionFactory); } 这样是可以获得sessionFactory的

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧