1.@SpringBootApplication:是Sprnig Boot项目的核心注解,目的是开启自动配置。
会自动import org.springframework.boot.autoconfigure.SpringBootApplication;它包含三个注解:
- @SpringBootConfiguration是来声明当前类是SpringBoot应用的配置类,项目中只能有一个。所以一般我们无需自己添加。
- @EnableAutoConfiguration开启自动配置,告诉SpringBoot基于所添加的依赖,去“猜测”程序员想要如何配置Spring。比如引入了spring-boot-starter-web,而这个启动器中帮我们添加了tomcat、SpringMVC的依赖,此时自动配置就知道是要开发一个web应用,所以就完成了web及SpringMVC的默认配置了。
- @ComponentScan配置组件扫描的指令,扫描的包是该类所在包及其子包。
2.@RestController:在Spring中@RestController=@Controller + @ResponseBody
所以只要了解@Controller和@ResponseBody就能很好地理解@RestController。如果没有这个注解,会导致找不到页面这一错误。
- @Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化。
- @ResponseBody 它的作用就是指该类中所有的API接口返回的数据,不管对应的方法返回Map或是其他Object,它会以Json字符串的形式返回给客户端。
3.@GetMapping:它是一个组合注解,就是@RequestMapping中采用get的请求方式。
参数可以是基本类型、数组、简单对象,当参数的对象中嵌套着对象,对象中的属性为list和map时,会报错。
4.@RequestParam:作用就是把请求中的指定名称的参数传递给控制器中的形参赋值。
它有三个属性: - value / name:请求参数中的名称 (必写参数)。value 属性值没有对应上jsp中name 值则会直接报400错误,因为required 属性默认为true ,不写将会使用默认值。
- required:请求参数中是否必须提供此参数,默认值是true,true为必须提供
- defaultValue:默认值(不传参时就是默认值)
在完成hello world的案例时,会遇到一些问题记录如下:
1.intellij IDEA— 报inspects a maven model for resolution problems:
查阅资料后重新下载了maven,网上说右击项目-maven-download source and documention,访问网络下载资源,时间比较长,但是点击后无反应。最后找到另一个解决方法,在
<artifactId>spring-boot-maven-plugin</artifactId>
下一行添加
<version>2.3.3.RELEASE</version>
即可解决。
2.SpringBoot中不能识别RestController
单击项目右键查看maven,网上说reimport更新依赖包但是我没有看到reimport,所以点击了reload,完成后即可解决问题,顺利看到hello world的界面。