SpringBoot学习

一、入门

1.注解

(1)swagger注解之@ApiOperation

用途:用于方法上,表示一个http请求的操作。
使用:@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”)
value:对该操作进行简单的描述,尽量控制在120字符以内。
notes:对操作的详细描述。
httpMethod:指定操作使用的HTTP方法类型,可选值 “GET”、“HEAD”、“POST”、“PUT”、“DELETE”、“OPTIONS”和“PATCH”。
效果: 启动应用后,在浏览器中访问http://localhost:8080/swagger-ui.html,就能够看到Swagger-ui的页面,展示定义的接口信息。

(2)@SuppressWarnings

用途: 用于消除编译器产生的警告
使用:
@SuppressWarnings(“unchecked”) [抑制单类型的警告]
@SuppressWarnings(“unchecked”,“rawtypes”) [抑制多类型的警告]
@SuppressWarnings(“all”) [ 抑制所有类型的警告]

(3)@Controller

用途: 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。单单使用@Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。
使用: 这个时候有两种方式可以把Controller 交给Spring 管理,好让它能够识别我们标记的@Controller 。

第一种方式是在SpringMVC 的配置文件中定义MyController 的bean 对象。

<bean class="com.br.web.controller.MyController"/>

第二种方式是在SpringMVC 的配置文件中告诉Spring 该到哪里去扫描标记为@Controller 的Controller 控制器。

< context:component-scan base-package = "com.br.web.controller" >
   < context:exclude-filter type = "annotation"
       expression = "org.springframework.stereotype.Service" />
</ context:component-scan > 

注:上面 context:exclude-filter 标注的是不扫描 @Service 标注的类

(4)@RequestMapping

用途: 映射 request 请求与处理器.
使用: 控制器上的注解不是必须的,如果控制器上没有,方法上的就是绝对路径。

(5)@PathVariable

用途: URI 模板就是在URI 中给定一个变量,然后在映射的时候动态的给该变量赋值。如URI 模板http://localhost/app/{variable1}/index.html ,这个模板里面包含一个变量variable1 ,那么当我们请求http://localhost/app/hello/index.html 的时候,该URL 就跟模板相匹配,只是把模板中的variable1 用hello 来取代。在SpringMVC 中,这种取代模板中定义的变量的值也可以给处理器方法使用,这样我们就可以非常方便的实现URL 的RestFul 风格。
这个变量在SpringMVC 中是使用@PathVariable 来标记的。在SpringMVC 中,我们可以使用@PathVariable 来标记一个Controller 的处理方法参数,表示该参数的值将使用URI 模板中对应的变量值来赋值。
使用:

@RequestMapping ( "/test/{variable1}" )
public 返回类型 方法名(@PathVariable ( "variable1" ) int variable1) {

}

(6) @RequestParam

用途: 绑定 HttpServletRequest 请求参数到控制器方法参数
使用:

@RequestMapping ( "/testRequestParam" )
public String testRequestParam( @RequestParam(required=false) String name, @RequestParam ( "age" ) int age) {
   return "requestParam" ;
} 

在上面代码中利用@RequestParam 从HttpServletRequest 中绑定了参数name 到控制器方法参数name ,绑定了参数age 到控制器方法参数age 。
值得注意的是和@PathVariable 一样,当你没有明确指定从request 中取哪个参数时,Spring 在代码是debug 编译的情况下会默认取更方法参数同名的参数,如果不是debug 编译的就会报错。此外,当需要从request 中绑定的参数和方法的参数名不相同的时候,也需要在@RequestParam 中明确指出是要绑定哪个参数。
在上面的代码中如果访问/testRequestParam.do?name=hello&age=1 则Spring 将会把request请求参数name 的值hello 赋给对应的处理方法参数name ,把参数age 的值1 赋给对应的处理方法参数age 。

在@RequestParam 中除了指定绑定哪个参数的属性value 之外,还有一个属性required ,它表示所指定的参数是否必须在request 属性中存在,默认是true ,表示必须存在,当不存在时就会报错。在上面代码中指定了参数name 的required 的属性为false ,而没有指定age 的required 属性,这时候如果我们访问/testRequestParam.do而没有传递参数的时候,系统就会抛出异常,因为age 参数是必须存在的,而没有指定。而如果访问/testRequestParam.do?age=1 的时候就可以正常访问,因为传递了必须的参数age ,而参数name 是非必须的,不传递也可以。

(7) @RequestHeader

用途: 绑定 HttpServletRequest 头信息到Controller 方法参数
使用: 此注解的大小写不敏感,Host和host都可以。

@RequestMapping ( "testRequestHeader" )
public String testRequestHeader( @RequestHeader ( "Host" ) String hostAddr ) {
    System. out .println(hostAddr);
    return "requestHeader" ;
} 

(7) @ResponseBody

用途: 将方法的返回值,以特定的格式写入到response的body区域,进而将数据返回给客户端。
作用在方法上:如果返回值是字符串,那么直接将字符串写到客户端;如果是一个Java对象,会将对象转化为json串,然后写到客户端。
作用在形参上:用于将前台发送过来固定格式的数据【xml格式 或者 json等】封装为对应的 JavaBean 对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值