目录
一、问题描述
今天是个好日子,又是crud的一天,简简单单几个接口,写完就可以划水啦。哈哈哈。然而,不出意外的话,就要出意外了。接口写完了,服务起不起来了。哎哟,我去,又要给我搞事情。报错主要信息如下:
Description:
Parameter 0 of method listcameralnfo in vipdtcloud.service.asset.impl.ameralnfoservicelmpl reavired a bean of type "v.langString'that could not be found
The injection point has the following annotations:@org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'java.lang.String' in your configuration
之前还能起来的啊,怎么突然就起不来了呢??!!!
我就是加了一个接口啊。
@RequestMapping("/selectList")
public Result selectList(@RequestParam String type, @RequestParam(required = false) Integer disable) {
return new SuccessResult(cameraInfoService.selectList(type, disable));
}
就是这么简单的接口?怎么会有问题呢?
二、解决过程
我注释掉它!再启动它!说干咱就干!结果还是一样的错误,一样的无法启动!
事到如今,看来不能病急乱投医了,只能冷静、冷静,再冷静。仔细的看看这个关键报错信息。 发现错误是发生在业务层,那么就来看看业务层到底出啥幺蛾子了。我丢!不看不知道,一看吓一跳!
业务层方法listCameraInfo的参数竟然都标红了。提示信息是:Could not autowire. No beans of 'String' type found。这个意思就是我在注入String类,但是从spring的bena容器里面却找不到。开什么国际玩笑,String类是jdk自带的类,我怎么会注入String?!然而,下一秒就打脸了。
往这个方法上面一看,我去,我什么时候在这个方法上面加了个@Autowired这个注解。迅速删除掉这个注解,当作一切都没发生过(这个脸丢不起啊)。再次启动,成功!!
三、总结
划水归划水,可不能因为想着早点划水就粗心大意啊,不然结果就会像博主一样,哈哈。(真正的总结:出了问题一定要冷静冷静,不要病急乱投医。不要因为出了问题,就怀疑一切。要认真分析错误信息,错误信息一般都会有关键的信息。根据它提示的关键的信息,一般我们都可以快速的定位到问题发生的地方。这样,就能大大的缩小我们排查问题的范围,达到事半功倍的效果!)