SpringBoot学习笔记——一些Spring注解

SpringBoot学习笔记

Controller的使用

一些Spring注解及其含义

注解含义
@Controller处理Http请求,配合模板使用
@RestController组合注解,可用@Controller与@ResponseBody两句等价替换
@RequestMapping配置url映射,用户通过url访问到某个指定方法
@PathVariable获取url中的数据
@RequestParam获取请求参数的值,以?和=搭配使用的方式
@GetMapping组合注解,相当于指定了请求方式为GET的@RequestMapping注解

使用@Controller注解

1.在HelloController.java文件关键代码如下:

@Controller
public class HelloController {
    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String say(){
        return "index";
    }
}

2.在resources/templates/下新建index.html文件,并编写代码:
<h1>Hello SpringBoot!</h1>
3.在pom.xml文件中添加依赖的模板配置,其中thymeleaf是spring官方的一个模板:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

pom.xml

4.运行,用浏览器打开:

http://localhost:8080/hello

Hello SpringBoot!

注意:若未成功出现此界面,可能是由于新配置了模板的pom.xml未及时导入,可右击pom.xml文件>Maven>Reimport
Reimport
然后再运行即可。


使用@RequestMapping注解

比如刚刚使用的注解:
@RequestMapping(value = "/hello", method = RequestMethod.GET)

value属性

其中value的值用于设置映射的url地址,此时访问的url应为:

http://localhost:8080/hello

如果既想通过/hello来访问也想通过其他url映射访问,比如/yimi,则可把value的值设置成集合:

@RequestMapping(value = {"/hello", "/yimi"}, method = RequestMethod.GET)

这样,使用

http://localhost:8080/yimi

也可以访问到同样内容了。

注意:url映射是大小写敏感的。

@RequestMapping还可以对整个类也进行url映射,把HelloControll.java文件进行修改(现在不用pom.xml和index.html做模板映射):

@RestController
@RequestMapping(value="hello")
public class HelloController {
    @RequestMapping(value = "yimi", method = RequestMethod.GET)
    public String say(){
        return "RequestMapping test";
    }
}

使用@RequestMapping同时对类和方法都做了url映射,则访问时,url应为:

http://localhost:8080/hello/yimi

RequestMapping test

method属性

method用于指定请求方式,比如GET、POST等。
现在把请求方式换为POST:@RequestMapping(value = "yimi", method = RequestMethod.POST)
这样再按原来的方式就访问不到了:
POST error

可以使用工具Postman来访问。
Postman
选择POST的请求方式,输入url,点击Send,即可在下面看到返回得到的信息。
注意:若不指定,method请求方式,则默认GET/POST均可访问到,但安全起见还是不省略method。


使用@PathVariable注解

@PathVariable可用于获取url中的数据。现在继续修改HelloController.java文件内容如下:

@RestController
@RequestMapping(value="hello")
public class HelloController {
    @RequestMapping(value = "yimi/{num}", method = RequestMethod.GET)
    public String say(@PathVariable("num")Integer myNum){
        return "num:" + myNum;
    }
}

浏览器端效果如图:
PathVariable

或者@RequestMapping(value = "{num}/yimi", method = RequestMethod.GET) 则url也可如下使用:
PathVariable


使用@RequestParam注解

修改HelloController.java代码如下:

@RestController
@RequestMapping(value="hello")
public class HelloController {
    @RequestMapping(value = "yimi", method = RequestMethod.GET)
    public String say(@RequestParam("num")Integer myNum){
        return "num:" + myNum;
    }
}

浏览器端用法:
RequestParam

注意:若为给num参数赋值,则值为null

那么如何给num设置默认值呢?修改@RequestParam如下:

@RequestParam(value = "num", required = false, defaultValue = "0")

其中required指定是否必传参数,false表示非必传参数;defaultValue表示未传参数时的默认值(注意要打引号)
再通过浏览器访问:
RequestParam
现在,即使不在url中传num的值,num也有默认值显示了。


使用@GetMapping注解

@GetMapping是一个组合注解,相当于指定了请求方式为GET的@RequestMapping注解,即:

@RequestMapping(value = "yimi", method = RequestMethod.GET)

等价于

@GetMapping(value="yimi")
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值