您的位置:首页 > 编程语言 > Java开发

微服务开发的入门级框架Spring Boot详解(三)

2018-01-14 14:08 435 查看
摘要: 首先,感谢各位朋友指出的问题,我会更加认真负责的写下去,希望帮助正在微服务前进的朋友,大家一起努力!

        通过前两章节的介绍,大家应该对Spring Boot有了些许的认识,也感觉到了这个框架带来的便利,下面我将讲解SpringBoot的一些常用注解。

1、Controller注解的使用

        1.1 简介

            


        1.2 RestController 注解详解

            RestController相当于@ResponseBody+@Controller,用来响应HTTP请求。在类之前加,不加就无法响应Http请求了。



          1.3 RequestMapping 注解详解

            RequestMapping用来配置URL映射,可以加在类上,也可加在方法上。



        如果把注解加在类上,访问此类下的方法,则需要在URL上加类上的映射。效果如下:注:joyou这个路径是之前在yml中配置的。

        


            如果一个方法,既想用hello访问,也想用hi访问,那么只需要把value属性配置为数组方式即可。在类上也一样。

        


                浏览器访问效果如下:使用hello和hi都可以访问此方法



            可以看到在日志输出结果如下



         1.4 RequestMapping 注解中Method属性详解           

                我们可以看到映射这里的属性有非常多的选择,规则如下:主要的作用是限制此方法的请求方式。 (PS:我记得有一次面试,HR问我SpringMVC 如何只允许Post方式访问一个方法?我当时也不知道直接在这设置就行了,我回答的是写一个拦截器,拦截掉所有非Post请求.......现在想想我当时想法好天真的,哈哈!)

            


               如果设为Get,那么只能接收Get请求,设置为Post,就只能接收Post请求。下面用Get做一个实验。

            首先将Method设为Get。       

@RequestMapping(value="/hello" , method = RequestMethod.GET)
public String HelloSpring(){

return girl.toString();
}

            使用火狐浏览器的发包工具,向服务器发送一个GET请求,返回200状态码,说明请求成功!



            使用火狐浏览器的发包工具,向服务器发送一个POST请求,返回405状态码,说明失败了!



            上面通过设置其属性的方式,有朋友会觉得很麻烦,而Spring也早就为我们提供了一种更优雅的方式,将在下一章节介绍。

 

2、URL中参数的接收

        2.1 简介

        


        2.2 @PathVariable 注解详解

        使用@PathVariable 注解可以接收URL中的数据值,格式如下:

        


        浏览器带参数访问URL,可以看见输入的参数已经接收并返回给视图。

    


        2.3 @RequestParam注解详解

            使用RequestParam注解可以接收URL中参数的值,格式如下:(请大家注意与@PathVariable注解接收参数书写格式和代入参数的格式 )

        


        浏览器带参数访问URL,效果如下:

        


        需要注意的是,如果开启此注解访问URL不带参数则会报错!

        那么比如说我不想每次都带参数,有时候带有时候不带,这种情况怎么办呢?RequestParam中还有其他属性:required 是否为必传,defaultValue 默认值。请看下面的截图:



        浏览器不带参数访问结果如下,返回默认值0:



        2.4  使用组合注解

        上一章提到过一种优雅的限制请求类型的方法,就是使用@GetMapping @PostMapping@DeleteMapping等注解,例如@GetMapping 其相当于@RequestMapping( method = RequestMethod.GET),怎么样是不是更简略了?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring