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.--