Spring Boot学习笔记


typora-root-url: E:\Documents\typora-user-images


一、SpringBootApplication(启动类):


@SpringCloudApplication

确定该类为启动类。

相当于@SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan(“com.sunyard”)。

@MapperScan(value = "com.atguigu.springboot.mapper")

指定某个包为mapper包,相当于给每个接口自动加上@Mapper。

@EnableCaching

开启基于注解的缓存。

@ComponentScan("com.sunyard")

注解在启动类上,设置IOC容器要扫描的包。

@EnableDiscoveryClient

用于SpringCloud,标注在启动类上,让注册中心能够发现,扫描到该服务。

二、Controller(控制器类):


1、常用:

@RestController

@RestController注解相当于**@ResponseBody + @Controller**合在一起,@ResponseBody可以将控制器返回的对象、列表转为json串。

@SessionAttributes(names = {
   "id"}, types = {
   Role.class})

在控制器中可以使用注解@SessionAttributes来设置对应的键值对,不过这个注解只能对类进行标注,不能对方法或参数注解。它可以配置属性名称或者属性类型。它的作用是当这个类被注解后,Spring MVC执行完控制器的逻辑后,将数据模型中对应的属性名称或者属性类型保存到HTTP的Session对象中

2、接收参数:

@Valid

使用 @Valid 标注,表明这个Bean将会被检验是否符合注解验证

@RequestParam(value = "date", required = false, defaultValue="")

将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

语法:

value:参数名

required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。

defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

@RequestAttribute

注解@RequestAttribute被用于访问由过滤器或拦截器创建的、预先存在的请求属性。

@RequestAttribute和@RequestParam注解的区别:

@RequestAttribute注解的参数在项目里是自己解析出来的,并不是前端传递的。具体一点,在项目里的拦截器里会对Token信息进行解析,解析出来的参数重新放在请求里(用httpServletRequest.setAttribute(name, value)),后边接口接收参数时就用这个注解。

@RequestParam注解则表示这个参数是通过前端传递过来的,如果请求里没有这个参数,则会报错400 Bad Request。

@RequestPart

@RequestPart主要用来处理content-type为 multipart/form-data 或 multipart/mixed stream 发起的请求,可以获取请求中的参数,包括普通文本、文件或复杂对象比如json、xml等,针对json等复杂对象,需要明确对应的content-type:multipart/form-data。

multipart/form-data是基于post方法来传递数据的,并且其请求内容格式为Content-Type: multipart/form-data,form-data格式一般是用来进行文件上传的。使用表单上传文件时,必须让表单的 enctype 等于 multipart/form-data,因为该值默认值为application/x-www-form-urlencoded

关于multipart/form-data具体可参考:https://www.cnblogs.com/xiaocaiyuxiaoniao/p/9430878.html

@SessionAttribute("userName")

将请求参数绑定到你控制器的方法参数上(用于获取Session中的数据)。

设置session参数使用@SessionAttributes注解。

@GetMapping("/car/{id}")
public void getCar(@PathVariable("id") Integer id){
   
    
}

@PathVariable(“id”)用于将请求参数绑定到你控制器的方法参数上(用于获取url中的数据)。

@MatrixVariable("low")

用于获取矩阵变量的值。

不同于常规的http://xxxx/video/BV1Et411Y7tQ?p=142&a=666,传递矩阵变量的格式为http://xxxx/video/BV1Et411Y7tQ;p=142;a=666,777,888,其中每一个分号代表一个属性,逗号则代表一个属性有多个值,需要使用列表来接收。

SpringBoot默认禁用了矩阵变量的功能,需要手动开启。

@RequestBody

将请求参数绑定到你控制器的方法参数上(用于将前端传过来的json转换为对应的对象或者数组),只能使用POST方式进行提交。

@RequestHeader(value="User-Agent", required=false, defaultValue="attribute")

HTTP请求头获取对应的请求信息。

@CookieValue(value="JSESSIONID", required=true, defaultValue="MyJsessionId")

Cookie请求头获取对应的请求信息。

三、Entity(实体类):


1、Lombok:

@Data

使用这个注解可以省去代码中get()、 set()、 toString()、@EqualsAndHashCode、@RequiredArgsConstructor等方法

使用这个注解需要在IDEA中安装lombok插件,并且在pom.xml中添加lombok依赖:

<!--lombok-->
		<dependency>
			<groupId>org.projectlombok</groupId
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值