马士兵spring教程疑问

飘过的小牛 2013-09-25 02:50:23
我看了前六讲,模拟了一下Spring的功能。这个小例子非常简单,但是我实验的时候总是出错,抛出一个空指针异常。我把userdaoimpl放到beans里面,然后模拟classpathxmlapplicationcontext读取,遇到的问题总结一下就是一点:

HashMap<String, Object>beans中有一个元素:
id = u
class = com.bjsxt.dao.impl.userdaoimpl

然后我在外面调用的是

userdao u = (userdao)beanfactory.getbean("u");

然后后面把u作为参数传给其他函数,但是却说u是一个空指针。于是我先遍历了一下beanfactory,里面明明有id = u的元素,这点非常纳闷。。。希望有人可以帮忙解释一下这到底是什么原因。或者告诉一下qq之类的,我给你发一下这个项目,你帮我看一下。感激不尽(有效代码行数大概只有20行的样子,我很急!谢谢!~~~)
...全文
501 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
小猫鼬maki 2013-10-11
  • 打赏
  • 举报
回复
Debug进去 一步一步调试看看断点是在哪里报错的嘛。
乔不思 2013-10-11
  • 打赏
  • 举报
回复
引用 11 楼 niushuai666 的回复:
[quote=引用 10 楼 fudongrifdr 的回复:] [quote=引用 8 楼 niushuai666 的回复:] 我已找到错误了,是一个非常隐蔽的地方: beans.get(String name)方法中,我传入了一个name的String。 但是我用的是beans.get("name")。 虽然找到了这个错误,但是我依然很郁闷。因为debug的时候,一直都是空指针,我找了半天也没找到到这个地方。看来还是自己的debug能力太弱。那么,大家在遇到这个问题(空指针异常)都是怎么调试的呢?比如说你也遇到了和我一样的问题。谢谢大家了~~~~
自己搞的话,system.out.println.......[/quote] 不要开玩笑嘛。。你不觉得这是一个给新手指引的好机会吗?毕竟一个项目几十上百个文件,system.out.print是要死人的。。。。[/quote] 感觉 Sysytem.out.println();不错啊 虽然长千上万个 项目 ,,但毕竟也是 一点一点 写的 出错的地方 很定就是你当前要实现的功能。。。。顺着路径找先去。。。 问题也就迎刃而解了。。。呵呵 信赖Syso+Alt+? 呵呵
zlamnz 2013-10-10
  • 打赏
  • 举报
回复
引用 8 楼 niushuai666 的回复:
我已找到错误了,是一个非常隐蔽的地方: beans.get(String name)方法中,我传入了一个name的String。 但是我用的是beans.get("name")。 虽然找到了这个错误,但是我依然很郁闷。因为debug的时候,一直都是空指针,我找了半天也没找到到这个地方。看来还是自己的debug能力太弱。那么,大家在遇到这个问题(空指针异常)都是怎么调试的呢?比如说你也遇到了和我一样的问题。谢谢大家了~~~~
看代码在哪一行报的空指针了
飘过的小牛 2013-10-09
  • 打赏
  • 举报
回复
引用 12 楼 lxl_family 的回复:
[quote=引用 8 楼 niushuai666 的回复:] 我已找到错误了,是一个非常隐蔽的地方: beans.get(String name)方法中,我传入了一个name的String。 但是我用的是beans.get("name")。 虽然找到了这个错误,但是我依然很郁闷。因为debug的时候,一直都是空指针,我找了半天也没找到到这个地方。看来还是自己的debug能力太弱。那么,大家在遇到这个问题(空指针异常)都是怎么调试的呢?比如说你也遇到了和我一样的问题。谢谢大家了~~~~
你看马士兵的Spring,你用的Spring是哪个版本的?我用Spring3.2.4,照着马士兵的Spring视频的第8讲写的代码进行测试,出现了异常: 这是什么问题呢?[/quote] 空指针异常啊。。。。。
lxl_h 2013-10-07
  • 打赏
  • 举报
回复
引用 8 楼 niushuai666 的回复:
我已找到错误了,是一个非常隐蔽的地方:

beans.get(String name)方法中,我传入了一个name的String。
但是我用的是beans.get("name")。

虽然找到了这个错误,但是我依然很郁闷。因为debug的时候,一直都是空指针,我找了半天也没找到到这个地方。看来还是自己的debug能力太弱。那么,大家在遇到这个问题(空指针异常)都是怎么调试的呢?比如说你也遇到了和我一样的问题。谢谢大家了~~~~

你看马士兵的Spring,你用的Spring是哪个版本的?我用Spring3.2.4,照着马士兵的Spring视频的第8讲写的代码进行测试,出现了异常:

这是什么问题呢?
飘过的小牛 2013-09-26
  • 打赏
  • 举报
回复
引用 10 楼 fudongrifdr 的回复:
[quote=引用 8 楼 niushuai666 的回复:] 我已找到错误了,是一个非常隐蔽的地方: beans.get(String name)方法中,我传入了一个name的String。 但是我用的是beans.get("name")。 虽然找到了这个错误,但是我依然很郁闷。因为debug的时候,一直都是空指针,我找了半天也没找到到这个地方。看来还是自己的debug能力太弱。那么,大家在遇到这个问题(空指针异常)都是怎么调试的呢?比如说你也遇到了和我一样的问题。谢谢大家了~~~~
自己搞的话,system.out.println.......[/quote] 不要开玩笑嘛。。你不觉得这是一个给新手指引的好机会吗?毕竟一个项目几十上百个文件,system.out.print是要死人的。。。。
末日哥 2013-09-26
  • 打赏
  • 举报
回复
引用 8 楼 niushuai666 的回复:
我已找到错误了,是一个非常隐蔽的地方: beans.get(String name)方法中,我传入了一个name的String。 但是我用的是beans.get("name")。 虽然找到了这个错误,但是我依然很郁闷。因为debug的时候,一直都是空指针,我找了半天也没找到到这个地方。看来还是自己的debug能力太弱。那么,大家在遇到这个问题(空指针异常)都是怎么调试的呢?比如说你也遇到了和我一样的问题。谢谢大家了~~~~
自己搞的话,system.out.println.......
异常异长 2013-09-26
  • 打赏
  • 举报
回复
引用 8 楼 niushuai666 的回复:
我已找到错误了,是一个非常隐蔽的地方: beans.get(String name)方法中,我传入了一个name的String。 但是我用的是beans.get("name")。 虽然找到了这个错误,但是我依然很郁闷。因为debug的时候,一直都是空指针,我找了半天也没找到到这个地方。看来还是自己的debug能力太弱。那么,大家在遇到这个问题(空指针异常)都是怎么调试的呢?比如说你也遇到了和我一样的问题。谢谢大家了~~~~
解决就好
飘过的小牛 2013-09-26
  • 打赏
  • 举报
回复
我已找到错误了,是一个非常隐蔽的地方: beans.get(String name)方法中,我传入了一个name的String。 但是我用的是beans.get("name")。 虽然找到了这个错误,但是我依然很郁闷。因为debug的时候,一直都是空指针,我找了半天也没找到到这个地方。看来还是自己的debug能力太弱。那么,大家在遇到这个问题(空指针异常)都是怎么调试的呢?比如说你也遇到了和我一样的问题。谢谢大家了~~~~
nemorick 2013-09-25
  • 打赏
  • 举报
回复
1. 请检查是否所有spring相关的jar包者引入了,尤其是 commons-logging.jar包 2. ClassPathXmlApplicationContext的参数是你自己写beans.xml,即 ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
April_CH 2013-09-25
  • 打赏
  • 举报
回复
感觉是你ClassPathXmlApplicationContext.java有问题,在向HashMap<String, Object>beans存的时候Object存的有问题
wasdasdfqwer 2013-09-25
  • 打赏
  • 举报
回复
异常代码,既然报的是空指针,那就是空指针了
飘过的小牛 2013-09-25
  • 打赏
  • 举报
回复
beans.xml

<beans>
	<bean id="u" class="com.sina.dao.impl.UserDAOImpl" />
</beans>
userdaoimpl

package com.sina.dao.impl;

import com.sina.dao.UserDAO;
import com.sina.model.User;

public class UserDAOImpl implements UserDAO{

	@Override
	public void save(User u) {
		System.out.println("a user saved!");
	}
	
}
飘过的小牛 2013-09-25
  • 打赏
  • 举报
回复
beans.xml --------------- <beans> <bean id="u" class="com.sina.dao.impl.UserDAOImpl" /> </beans> --------------- userdaoimpl --------------- package com.sina.dao.impl; import com.sina.dao.UserDAO; import com.sina.model.User; public class UserDAOImpl implements UserDAO{ @Override public void save(User u) { System.out.println("a user saved!"); } } -------------
  • 打赏
  • 举报
回复
把你的applicationContext.xml的代码和userdaoimpl类的代码帖出来。。。
飘过的小牛 2013-09-25
  • 打赏
  • 举报
回复
在线等。。。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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