zoukankan      html  css  js  c++  java
  • springboot微服务的简单小结

    springboot微服务的简单小结

        近来公司用springboot微服务,所以小结一下。

       

    基础:

    什么是SpingBoot微服务?

    如何创建SpringBoot微服务?

    如何管理和完善SpringBoot微服务?

    实例:

    建立一个由Api层、服务层、数据层构成的微服务

    Api层基本知识介绍

    注解清单:

    @RestController

    @RequestMapping 为控制器指定可以处理那些URL 请求,可以定义在  和 方法 上 

    匹配符

    – ?:匹配文件名中的一个字符

    – *:匹配文件名中的任意字符

    – **:** 匹配多层路径

    实例:

    URL : /user/*/create

    -- /user/bigsea/create  /user/sea/create 等URL

    URL : /user/**/create

    -- /user/big/sea/create  /user/sea/big/create 等URL

    URL : /user/create??

    -- /user/createaa 、/user/createbb

    1. @Target({ElementType.METHOD, ElementType.TYPE})  
    2. @Retention(RetentionPolicy.RUNTIME)  
    3. @Documented  
    4. @Mapping  
    5. public @interface RequestMapping {  
    6. String[] value() default {};  
    7. RequestMethod[] method() default {};  
    8. String[] params() default {};  
    9. String[] headers() default {};  
    10. String[] consumes() default {};  
    11. String[] produces() default {};  
    12. }  
    13. value:  指定请求的实际地址, 比如 /action/info之类。
      method:  指定请求的method类型, GET、POST、PUT、DELETE等
      consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
      produces:    指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
      params: 指定request中必须包含某些参数值是,才让该方法处理
      headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求
    14. 其中,consumes, produces使用content-typ信息进行过滤信息;headers中可以使用content-type进行过滤和判断。

    @PathVariable 注解

    带占位符的 URL  Spring3.0 新增的功能,该功能在SpringMVC  REST 目标挺进发展过程中具有里程碑的意义

    通过 @PathVariable 可以将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable("xxx") 绑定到操作方法的入参中。

    @RequestParam 绑定请求参数

    在处理方法入参处使用 @RequestParam 可以把请求参数传递给请求方法

    – value:参数名

    – required:是否必须。默认为 true, 表示请求参数中必须包含对应的参数,若不存在,将抛出异常

    1. /** 
    2. 如果 required = true 则表示请求参数对应的 字段 必须存在.如果不存在则会抛出异常<br/> 
    3. * @param firstName 可以为null 
    4. * @param lastName 不能为null .null报异常 
    5. * @param age age字段表示如果没有 age 参数 则默认值为 0  
    6. * @return 
    7. */  
    8. @RequestMapping("/requestParam")  
    9. public String requestParam(@RequestParam(value="firstName",required=false)String firstName,  
    10. @RequestParam( value="lastName" ,required = true) String lastName,  
    11. @RequestParam(value="age",required = false ,defaultValue="0")int age) {  
    12. System.out.println("hello my name is " + (firstName == null ? "" : firstName)  
    13. + lastName + "," + age +" years old this year");  
    14. return "helloworld";  
    15. }  

    @RequestHeader 获取请求头

    请求头包含了若干个属性,服务器可据此获知客户端的信息,通过 @RequestHeader 即可将求头中的属性值绑定到处理方法的入参中

    1. /** 
    2. 获取请求头中的信息 
    3. * @RequestHeader 也有 value ,required ,defaultValue 三个参数 
    4. * @param userAgent 
    5. * @param cookie 
    6. * @return 
    7. */  
    8. @RequestMapping("/requestHeader")  
    9. public String requestHeader(@RequestHeader("User-Agent")String userAgent,@RequestHeader("Cookie")String cookie){  
    10. System.out.println("userAgent:["+userAgent+"]");  
    11. System.out.println("cookie:["+cookie+"]");  
    12. return "helloworld";  
    13. }  
  • 相关阅读:
    day 66 crm(3) 自创组件stark界面展示数据
    day 65 crm(2) admin源码解析,以及简单的仿造admin组件
    用 Python+nginx+django 打造在线家庭影院
    django -admin 源码解析
    day 64 crm项目(1) admin组件的初识别以及应用
    云链接 接口不允许 情况 解决方法 mysql Host is not allowed to connect to this MySQL server解决方法
    day 56 linux的安装python3 ,虚拟环境,mysql ,redis
    day55 linux 基础以及系统优化
    Codeforces 989 P循环节01构造 ABCD连通块构造 思维对云遮月参考系坐标轴转换
    Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力
  • 原文地址:https://www.cnblogs.com/daiwei1981/p/8599189.html
Copyright © 2011-2022 走看看