20190926 随录

记一次由一句注释引发的三小时惨案……


今天想着玩玩spring boot,遂搭了个hello spring的demo

然后想试试dao和thymeleaf,于是什么都玩玩

然后发现了这篇文章:

https://www.jianshu.com/p/efdd7c92640c

其中有段代码:

1
2
3
4
5
6
7
8
9
@Controller
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/index")
public String index(ModelMap modelMap) {
modelMap.addAttribute("host","www.baidu.com");
return "index";
}

照抄之后,我暂时没有UserService类,所以先把

1
private UserService userService;

给注释掉了

然后惨案就发生了……

在build的时候,IDEA不停报错,说

Consider defining a bean of type 'org.springframework.ui.ModelMap' in your configuration.

为了de这个bug,不停地来往于baidu和google,发现根本没有人遇到和我一样的情况。这是什么意思???

于是一口闷气在我胸口淤积……

甚至对照了以前的项目也没发现什么问题,External Libraries甚至都是一模一样的……

差点血都吐出来了,心情差得很

经过3个小时的思考与辨析,终于发现——————————

我因为注释掉了那句定义,导致@Autowired影响到了下面的方法!!!!

因为@Autowired的影响,所以IDEA才会一直问我要Model的bean的definition!!!

删掉@Autowired和注释后终于正常build了,然后发现返回的是字符串index……

思考了一下,@RestController是不能返回页面的,想返回页面只能是@Controller,修改之后正常了……

然而我今天也无心搞下去了,明天再说吧……

--It's the end.Thanks for your read.--