***@RequestBody和@RequestParam
https://blog.csdn.net/justry_deng/article/details/80972817
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
注:一个请求,只有一个RequestBody;一个请求,可以有多个RequestParam。
注:当同时使用@RequestParam()和@RequestBody时,@RequestParam()指定的参数可以是普通元素、
数组、集合、对象等等(即:当,@RequestBody 与@RequestParam()可以同时使用时,原SpringMVC接收
参数的机制不变,只不过RequestBody 接收的是请求体里面的数据;而RequestParam接收的是key-value
里面的参数,所以它会被切面进行处理从而可以用普通元素、数组、集合、对象等接收)。
即:如果参数时放在请求体中,传入后台的话,那么后台要用@RequestBody才能接收到;如果不是放在
请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam来接收,或则形参前
什么也不写也能接收。
注:如果参数前写了@RequestParam(xxx),那么前端必须有对应的xxx名字才行(不管其是否有值,当然可以通
过设置该注解的required属性来调节是否必须传),如果没有xxx名的话,那么请求会出错,报400。
注:如果参数前不写@RequestParam(xxx)的话,那么就前端可以有可以没有对应的xxx名字才行,如果有xxx名
的话,那么就会自动匹配;没有的话,请求也能正确发送。
追注:这里与feign消费服务时不同;feign消费服务时,如果参数前什么也不写,那么会被默认是
@RequestBody的。
@SpringBootAplication 标识入口类,将其所在包和其子包全部装入spring容器中。只能出现一次。这个注解是许多个注解组合而成的。等价于@SpringBootConfiguration(标志注解,标志这是入口类)、@EnableAutoConfigration(核心注解,自动配置spring以及引入的第三方技术)、@ComponentScan(组件扫描注解,默认扫描秒入口类所在的包,以及他的子包)
元注解:就是修饰注解的注解,@Doucment、@Inherited、@Retention(指定注解的生效时机)、@Target(指定注解的修饰范)围。
application中main函数的作用:启动内嵌tomcat服务器,
springapplication.run(application.class,args)参数一:入口类的对象,目的是让@EnableAutoConfigration自动配置print时将@ComponentScan扫描到注解创建对象一并放入工厂。参数二是main函数的参数,这个参数通过指定外部虚拟机参数形式覆盖应用内部默认参数。
@RestController (相当于@controller和@responseBody的结合)用在类上,所有的控制器上,作用是将类中所有控制器方法的返回值转换为json并响应到前端。
@controller 表示控制器
@responseBody 将返回值转换成json
***配置文件拆分:
将公共配置防止主配置文件中,将不同配置文件中放入不同环境的配置文件中;application.yml公共(在主配置文件中要激活响应的配置文件,spring:profiles:active:dev或者prod) application-dev.yml 开发 application-prod.yml 生产
SpringBoot banner:创建一个banner.txt
***spirng boot工厂特性之创建对象
单个自定义对象:@Component通用组件对象注解 @Service业务层注解 @Controller控制器注解 @Repository创建DAO组件
一次性创建多个组件对象把汗复杂对象:@Configuration 配置注解 修饰范围:用在类上,作用相当于以前的spring.xml配置文件,管理对象的创建。
@Bean 相当于spring.xml中的Bean标签,用来创建这个对象在工厂的一个实例。
@PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值;通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“)
****springboot获取前端参数的几种常用注解
获取参数的几种常用注解:https://blog.csdn.net/qq_20957669/article/details/89227840
@PathVariable:一般我们使用URI template样式映射使用,即url/{param}这种形式,也就是一般我们使用的GET,DELETE,PUT方法会使用到的,我们可以获取URL后所跟的参数。
@RequestParam:一般我们使用该注解来获取多个参数,在()内写入需要获取参数的参数名即可,一般在PUT,POST中比较常用。请求的url参数中的name必须要和@RequestParam("name")一致,
@RequestBody:该注解和@RequestParam殊途同归,我们使用该注解将所有参数转换,在代码部分在一个个取出来,也是目前我使用到最多的注解来获取参数
@RequestHeader来获取头信息里的值,
@CookieValue来获取Cookie值。
@RequestHeader("mytoken")获取请求头中的mytoken信息。