使用spring开发遇到 ... nested exception is java.lang.NullPointerException] with root cause

        今天使用spring框架开发一个项目时遇到了一点小问题,同样的一个功能,取出数据库中查询到的总条数,但是在两个BizImpl中代码相似,一个通过但是另一个却报错。严重: Servlet.service() for servlet [DispatcherServlet] in context with path [/wcx] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause。一开始还有点懵,以为在XML中有代码写错什么的,看到NullPointerException就是没有对变量进行null判断。其中两个不同的BizImpl类中局部代码如下:

TemplateBizImpl类中:(功能正常实现)

 

@Service
@SuppressWarnings({"rawtypes","unchecked"})
//上面的rawtypes为了消除警告(删除后BaseDao会出现警告), unchecked为了消除警告(baseDao.findAll(Template.class, map, "findByPage"  会出现警告);)。
public class TemplateBizImpl implements ITemplateBiz{
	@Autowired
	private BaseDao baseDao; 	//使用一个泛型的实体类,可以字节用它来当作数据层的类
	
	@Override
	public Map<String,Object> findByPage(Integer pageNo, Integer pageSize) {
		Map<String,Object> map = new HashMap<String,Object>();
		Map<String,Object> map1 = new HashMap<String,Object>();
		
		map.put("pageNo", pageNo);
		map.put("pageSize", pageSize);
		map1.put("total", this.baseDao.findFunc(Template.class, "temTotal").intValue());
		map1.put("rows", this.baseDao.findAll(Template.class, map, "temfindByPage"));
		return map1;
	}


SurveyBizImpl类中:(功能不能实现,报出异常)

 

 

 

@Service
@SuppressWarnings({"rawtypes","unchecked"})
public class SurveyBizImpl implements ISurveyBiz{
	private BaseDao baseDao;
	
	@Override
	public Map<String,Object> findByPage(Integer pageNo, Integer pageSize) {
		Map<String,Object> map = new HashMap<String,Object>();
		Map<String,Object> map1 = new HashMap<String,Object>();
		
		map.put("pageNo", pageNo);
		map.put("pageSize", pageSize);
		System.out.println(map);
		map1.put("total", this.baseDao.findFunc(Survey.class, "surTotal").intValue());
		System.out.println(map1);
		map1.put("rows", this.baseDao.findAll(Survey.class, map, "findByPageSurvey"));
		System.out.println(map1);
		return map1;
	}

 

这两个代码几乎都一样,一开始我一直局限在这个findByPage函数内部,报错的   map1.put("total", this.baseDao.findFunc(Survey.class, "surTotal").intValue());    没有对变量进行null判断。我们一个个对象来看。map1,就在上面定义好了,Survey这个类也导入了,最后看到一直没有关注的baseDao,仔细看也没打错,然后看了一下上面定义的。就会发现  private BaseDao baseDao;  定义的语句中上面少了  @Autowired  这个配置。因为我们使用了spring,所以相当于这个类我们给这个容器托管,不能自己随便定义。就好像学校的图书馆,我们可以去借一本书,但是不能去买一本一样的回来。所以加上 @Autowired  问题就解决了。

 

 

 

        @Autowired
	private BaseDao baseDao;


这个问题的解决办法就是在报错的那一行看每一个变量的定义的位置,看看是否存在未定义的情况,spring框架中对于对象要使用 @Autowired 配置对象。

 

 

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青山孤客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值