SpringBoot接口Http协议知识总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012429555/article/details/81276261

====================SpringBoot接口Http协议开发实战  =============================

1、SpringBoot2.xHTTP请求配置讲解

    简介:SpringBoot2.xHTTP请求注解讲解和简化注解配置技巧

    1、@RestController and @RequestMapping是springMVC的注解,不是springboot特有的    
    2、@RestController = @Controller+@ResponseBody    
    3、@SpringBootApplication = @Configuration+@EnableAutoConfiguration+@ComponentScan
        localhost:8080


2、开发接口必备工具之PostMan接口调试工具介绍和使用
    简介:模拟Http接口测试工具PostMan安装和讲解

        1、接口调试工具安装和基本使用
        2、下载地址:https://www.getpostman.com/

    

3、SpringBoot基础HTTP接口GET请求实战
    简介:讲解springboot接口,http的get请求,各个注解使用
        1、GET请求
            1、单一参数@RequestMapping(path = "/{id}", method = RequestMethod.GET)
                1) public String getUser(@PathVariable String id ) {}
                
                2)@RequestMapping(path = "/{depid}/{userid}", method = RequestMethod.GET) 可以同时指定多个提交方法
                getUser(@PathVariable("depid") String departmentID,@PathVariable("userid") String userid)

                3)一个顶俩
                @GetMapping = @RequestMapping(method = RequestMethod.GET)
                @PostMapping = @RequestMapping(method = RequestMethod.POST)
                @PutMapping = @RequestMapping(method = RequestMethod.PUT)
                @DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)

                4)@RequestParam(value = "name", required = true)
                    可以设置默认值,比如分页 

                4)@RequestBody 请求体映射实体类
                    需要指定http头为 content-type为application/json charset=utf-8

                5)@RequestHeader 请求头,比如鉴权
                    @RequestHeader("access_token") String accessToken

                6)HttpServletRequest request自动注入获取参数


            
4、SpringBoot基础HTTP接口POST,PUT,DELETE请求实战
    简介:讲解http请求post,put, delete提交方式
           GET请求:一般是查询
            Post请求:一般是提交
            PUT请求:一般是更新
            DELETE请求:一般是删除
            表单验证或者登陆请求的时候可以用:
            //params的类型是map类型
            @PostMapping("/v1/login")
            public Object login(String id,String pwd){
                param.clear();
                param.put("id",id);
                param.put("pwd",pwd);
                return params;
            }
            上述的方法就可以拿到登陆的密码和用户,这样就可以和数据库的密码和用户进行对比。


5、常用json框架介绍和Jackson返回结果处理
    简介:介绍常用json框架和注解的使用,自定义返回json结构和格式

    1、常用框架 阿里 fastjson,谷歌gson等
        JavaBean序列化为Json,性能:Jackson > FastJson > Gson > Json-lib 同个结构
        测试方法:循环序列化百万次,次数达到一定才可以看出差别
        Jackson、FastJson、Gson类库各有优点,各有自己的专长
        空间换时间,时间换空间

    2、jackson处理相关自动
        指定字段不返回(比如密码不应该返回给前端,故用这个注解来注释不让密码进行序列化后的显示):@JsonIgnore
        指定日期格式:@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")
        空字段不返回:@JsonInclude(Include.NON_NUll)
        指定别名:@JsonProperty(@JsonProperty("account")尽可能用别名,为了不暴露数据库的字段,防止黑客的攻击)


6、SpringBoot2.x目录文件结构讲解
     简介:讲解SpringBoot目录文件结构和官方推荐的目录规范

     1、目录讲解
         src/main/java:存放代码
         src/main/resources
             static: 存放静态文件,比如 css、js、image, (访问方式 http://localhost:8080/js/main.js)
             templates:存放静态页面jsp,html,tpl
             config:存放配置文件,application.properties
             resources:

     2、引入依赖 Thymeleaf
         <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        注意:如果不引人这个依赖包,html文件应该放在默认加载文件夹里面,
        比如resources、static、public这个几个文件夹,才可以访问

     3、同个文件的加载顺序,静态资源文件
     Spring Boot 默认会挨个从
     META/resources > resources > static > public  里面找是否存在相应的资源,如果有则直接返回。

     4、默认配置    
         1)官网地址:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-static-content

         2)spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ 

     5、静态资源文件存储在CDN


7、SpringBoot2.x文件上传实战
    简介:讲解HTML页面文件上传和后端处理实战
        1、讲解springboot文件上传 MultipartFile file,源自SpringMVC
                        
            1)静态页面直接访问:localhost:8080/index.html
                注意点:
                    如果想要直接访问html页面,则需要把html放在springboot默认加载的文件夹下面
            2)MultipartFile 对象的transferTo方法,用于文件保存(效率和操作比原先用FileOutStream方便和高效)
            
            访问路径 http://localhost:8080/images/39020dbb-9253-41b9-8ff9-403309ff3f19.jpeg

        

8、jar包方式运行web项目的文件上传和访问处理(核心知识)
    简介:讲解SpingBoot2.x使用 java -jar运行方式的图片上传和访问处理

    1、文件大小配置,启动类里面配置
        
            @Bean  
            public MultipartConfigElement multipartConfigElement() {  
                MultipartConfigFactory factory = new MultipartConfigFactory();  
                //单个文件最大  
                factory.setMaxFileSize("10240KB"); //KB,MB  
                /// 设置总上传数据总大小  
                factory.setMaxRequestSize("1024000KB");  
                return factory.createMultipartConfig();  
            }  

    2、打包成jar包,需要增加maven依赖
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
        如果没加相关依赖,执行maven打包,运行后会报错:no main manifest attribute, in XXX.jar

        GUI:反编译工具,作用就是用于把class文件转换成java文件

    3、文件上传和访问需要指定磁盘路径
        application.properties中增加下面配置
            1) web.images-path=/Users/jack/Desktop
            2) spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path} 

    4、文件服务器:fastdfs,阿里云oss,nginx搭建一个简单的文件服务器

猜你喜欢

转载自blog.csdn.net/u012429555/article/details/81276261