SpringBoot @Controller和@RestController注解的区别
@RestController注解相当于@ResponseBody + @Controller合在一起

@ResponseBody相当于自动帮我们把返回序列化,如果在controller上用@RestController,那么这个controller里的方法都不能返回视图页面,如jsp等;如果controller上用的是@Controller,那么如果没有视图页面配合的话会报错,如下如所示:
SpringBoot @Controller,@RestController,@SpringBootApplication一点理解
代码如下图:
SpringBoot @Controller,@RestController,@SpringBootApplication一点理解
看到resources/templates下没有东西,如果加上index.html
SpringBoot @Controller,@RestController,@SpringBootApplication一点理解
重启项目并访问:
SpringBoot @Controller,@RestController,@SpringBootApplication一点理解

这里要多提一点关于SpingBoot的目录结构
原来是放在 src/main/webapp 目录下的一系列资源,现在都统一放在 src/main/resources 相应子目录下,比如:
src/main/resources/static 用于存放各类静态资源,比如 css,js 等。
src/main/resources/templates 用于存放模板文件,比如 *.vm。
当然,如果还是希望以 war 包的形式,而不是 SpringBoot 推荐使用的独立 jar 包形式发布 Web 应用,也可以继续原来 Java Web 应用的项目结构约定。

此外,SpringBoot的入口类的@SpringBootApplication注解会去扫描当前目录以及子目录的文件,所以我们的controller,pojo,service等package都要以入口类package为父目录,在它的基础上去新建controller,pojo,service等目录,否则扫描不出来的话自己写的各种controller等是不会生效的

相关文章:

  • 2021-09-07
  • 2021-08-04
  • 2021-11-05
  • 2021-06-18
  • 2021-09-26
  • 2021-11-26
  • 2022-03-07
猜你喜欢
  • 2022-01-01
  • 2021-05-10
  • 2021-06-14
  • 2022-02-14
  • 2022-12-23
  • 2021-04-07
  • 2022-12-23
相关资源
相似解决方案