ApplicationContext bf = new ClassPathXmlApplicationContext("applicationContext.xml");
RecordDao dao = (RecordDao)bf.getBean("recordDao");
dao.save(r);我用以上方法能运行,不会报错。但是我改成 private RecordDao recordDao;
public RecordDao getRecordDao() {
return recordDao;
}public void setRecordDao(RecordDao recordDao) {
this.recordDao = recordDao;
}
.........
recordDao.save(r);
却不能注入。System.out.println(userDao); 打印结果为空。配置文件如下: <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- <bean id="hibernateTemplet"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean> -->
<bean id="userDao" class="fanfull.order.dao.impl.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="recordDao" class="fanfull.order.dao.impl.RecordDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
为什么?
RecordDao dao = (RecordDao)bf.getBean("recordDao");
dao.save(r);我用以上方法能运行,不会报错。但是我改成 private RecordDao recordDao;
public RecordDao getRecordDao() {
return recordDao;
}public void setRecordDao(RecordDao recordDao) {
this.recordDao = recordDao;
}
.........
recordDao.save(r);
却不能注入。System.out.println(userDao); 打印结果为空。配置文件如下: <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<!-- <bean id="hibernateTemplet"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean> -->
<bean id="userDao" class="fanfull.order.dao.impl.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="recordDao" class="fanfull.order.dao.impl.RecordDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
为什么?
解决方案 »
- jsp怎样将文件从一个文件夹转移到另外的一个文件夹
- 关于用jsf实现用户名的验证
- 用JFreechart做曲线图,直接输出到页面,为什么我的总是输出叉烧包????
- 怎样让查询错误的姓名,显示出错误提示信息
- 精通EJB(第二版,电子工业出版社,原名:mastering Enterprise JavaBeans)的代码在哪有下载啊?
- 高分求TOMCATA下载地址
- 请教一下,你们在STRUTS怎么去处理数据集的.
- 请问哪里可以下到SQL 2000的JDBC驱动
- servlet中如何返回一数组?
- tomcat jsp javabean 问题
- java和cobol那个更好?
- 谁用过jacob操作PPT啊,帮帮忙
然后
你try catch 看下这句代码 报什么错了没有
ApplicationContext bf = new ClassPathXmlApplicationContext("applicationContext.xml");
这句相当于对程序上下文的初始化,会在上下文中初始化所需要的bean,
再用RecordDao dao = (RecordDao)bf.getBean("recordDao");就相当于从上下文中拿出来初始化的bean;
但是你改后的程序相当于"只放了个口袋在那等着装bean"没有初始化上下文(也就是没有初始化所需要的bean)的启动程序,所以口袋得到的是空啊;
在web应用系统中这个启动程序是由web.xml中的相关配置启动的.......
请高手指点........
如果这行报错了 那错误在配置文件里 那个空 你看下 SESIONFACTORY 的配置 如果SESSIONFACTORY好的 就看下 HIBERNATE的数据库配置。
return recordDao;
}public void setRecordDao(RecordDao recordDao) {
this.recordDao = recordDao;
}
.........
recordDao.save(r);
xml 里需要配置把 recordDao注入到你上边那个代码的类里
public Class test{
private RecordDao recordDao;public RecordDao getRecordDao() {
return recordDao;
}public void setRecordDao(RecordDao recordDao) {
this.recordDao = recordDao;
}
.........
recordDao.save(r);
}配置文件中需要注入:
<bean id="test" class="XXX.Test">
<property name="recordDao" ref="recordDao" />
</bean>