`

SpringBoot-第2章SpringBoot接口Http协议开发实战

 
阅读更多

SpringBoot注解

@RestController and @ResquestMapping 是springmvc的注解,不是springboot特有的注解。

@RestController = @Controller + @ResponseBody

@SpringBootApplication = @SpringBootConfiguration + @EnableAutoConfiguration +@ComponentScan  其中 @SpringBootConfiguration=@Configuration

https://www.cnblogs.com/duanxz/p/7493276.html 里@Configuration作用讲的比较详细,就是相当于<beans>

https://www.getpostman.com/downloads/ 下载postman用于测试

https://blog.csdn.net/xsp_happyboy/article/details/80987484 用于解释自定义注解

@AliasFor 是注解的别名,像@RequestMapping中的value属性和path属性。https://blog.csdn.net/wolfcode_cn/article/details/80654730 

@RequestParam是获取post参数。@PathVariable是获取URL中的参数,URL要是用{xxx}定义。

@RequestParam(value="paraName1",defaultvalue="1234",required=true) String para1

value是post表单里的name或者是get请求?后面的参数,也可以用name来定义。如果不传这个值就自动用1234。requeired是必填,如果表单里不传这个值,并且还没有定义defaultvalue,那么将会报错400,Bad Request

@PostMapping("/a/c")
public Object getTest1(@RequestParam(value="n",required = true) String n1,@RequestParam(value="m",defaultValue = "1234") String m)
{
    Map map = new HashMap();
    map.put("n",n1);
    map.put("m",m);
    return map;
}

 

//请求头需要是contet_type=application/json
@RequestMapping("/a/d")
public Object getTest2(@RequestBody User user)
{
    //user.setAge(1);
Map map = new HashMap();
    map.put("user",user);
    return map;
}

 

发送内容如下:

{

"name":"kevin1",

"password":"1234",

"age":23

 

}

返回内容如下:

{

    "user": {

        "name": "kevin1",

        "password": "1234",

        "age": 23

    }

}

 

 

 

@RequestMapping(path="/aasdf/{user_id}",method = RequestMethod.GET)
public Object findUser(@PathVariable("city_id") String cityId,@PathVariable("user_id") String userId)
{
    mapPara.clear();
    mapPara.put("cityId",cityId);
    mapPara.put("userId",userId);
    return mapPara;
}

 

@RequestMapping("/a/e")
public Object getTest3(@RequestHeader String token,@RequestParam(name="id") String id1)
{
    Map map = new HashMap();
    map.put("token",token);
    map.put("id1",id1);
    return map;
}

 

@RequestMapping("/a/f")
public Object test3(HttpServletRequest request)
{
    String id = request.getParameter("id");
    Map map = new HashMap();
    map.put("id",id);
    return map;
}

 

POST PUT DELETE 提交

 

package com.kevin.autogenproject.controller;

import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;

@RestController
public class OtherHTTPController
{
    @PostMapping("/b/a")
    public Object testPost(@RequestParam(name="a1") String a2)
    {
        Map map = new HashMap();
        map.put("a2",a2);
        return map;
    }

    @PutMapping("/b/b")
    public Object testPut(@RequestParam(name="a1") String a2)
    {
        Map map = new HashMap();
        map.put("a2",a2);
        return map;
    }

    @DeleteMapping("/b/c")
    public Object testDelete(@RequestParam(name="a1") String a2)
    {
        Map map = new HashMap();
        map.put("a2",a2);
        return map;
    }
}

 

 

jackjson里的一些注解

@JsonIgnore //在返回json时不返回这个字段
private String password;
@JsonProperty("aggggge")//在返回json时显示agggge这个名字
@JsonInclude(Include.NON_NULL)//如果为空就不返回这个字段
private int age;
@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale = "zh",timezone = "GMT+8") //在返回json时格式化时间字符串
private Date createTime;

 

@RequestMapping("/test2")
public Object testJson()
{
   return new User("kevin","123456",12, new Date());
}

 

 

{
    "name": "kevin",
    "createTime": "2219-02-25 05:01:02",
    "aggggge": 12
}
 

 资源文件目录结构

resources

----META-INF

-----------------resources

----resources

----static   存放静态文件 js css image

----public 

----templates 存放jsp html tpl

----config 存放application.properties

如果同一个文件在上面四个文件夹都存在,那么优先访问resources-META-INF-resources下的文件,如果删除这个目录下的文件。那么优先访问resources-resources下的文件,如果删除这个目录下的文件,则访问resources-static的文件,如果删除这个文件,则访问public。

官网地址:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-static-content

默认加载内容,在application.properties里添加:

spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/js/新添加的

 

 

 <!DOCTYPE html>

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=gb2312"/>
    <title>Title</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="/upload">
    文件名:<input type="file" name="img1"></input>
    姓名: <input type="text" name="name"></input>
<input type="submit" value="1"/>
</form>
</body>
</html>

 

需要引入

 

<build>
   <plugins>
      <plugin>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
   </plugins>
</build>

 

在mvn install 时可以打成springboot形式的jar包,还可以自动生成mainfest文件。没有这个文件运行会报错 no mainfest attribute ,in xxx.jar

在application.properites中编辑web.images-path=D:/a 。注意一定是反斜杠/

在classpath中可以增加,file:${web.images-path}指定外部文件。 在D:/a 添加一个a.jpg。可以通过http://localhost:8080/a.jpg来访问。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    springboot-mini.zip

    《SpringBoot迷你实战指南》 在当今的Java开发领域,SpringBoot已经成为构建高效、便捷的企业级应用的首选框架。SpringBoot以其"约定优于配置"的理念,大大简化了Spring应用程序的初始搭建以及开发过程,使得开发者...

    01-SpringBoot-Demo

    【SpringBoot基础知识】 Spring Boot是由Pivotal团队提供的全新框架,其设计目标是用来简化新Spring应用的初始搭建以及开发过程。它集成了大量的常用第三方库配置,如数据源、JPA、Security、WebSocket等,提供了...

    springboot-swagger-demo202010221424.zip

    《SpringBoot整合Swagger实战解析》 在现代的Web开发中,API文档的编写与管理是一项重要的任务,它有助于开发者理解接口的功能和用法。Swagger作为一款强大的API文档管理工具,可以自动化生成接口文档,极大地提高...

    springboot-01-helloworld.rar

    二、创建SpringBoot项目 在"springboot-01-helloworld"项目中,首先我们需要创建一个基于SpringBoot的Maven工程。Spring Initializr(https://start.spring.io/)是一个在线工具,可以帮助我们快速生成项目结构。...

    智慧生活商城系统-智慧生活商城系统的设计与实现代码-java-springboot-管理系统-代码-源码-项目-系统-毕设-网站

    第2章 相关技术介绍 3 2.1 MySQL数据库 3 2.2 Vue前端技术 3 2.3 B/S架构模式 4 2.4 ElementUI介绍 4 第3章 系统分析 5 3.1 可行性分析 5 3.1.1技术可行性 5 3.1.2经济可行性 5 3.1.3运行可行性 6 3.2 系统流程 6 ...

    springboot-bucket.zip

    SpringBoot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、Redis、RabbitMQ、Quartz 等,使得开发者能够快速地创建一个...

    图书个性化推荐系统的设计与实现代码-java-springboot-基于springboot的图书个性化推荐系统项目-代码-源码

    第2章 相关技术介绍 3 2.1 MySQL数据库 3 2.2 Vue前端技术 3 2.3 B/S架构模式 4 2.4 ElementUI介绍 4 第3章 系统分析 5 3.1 可行性分析 5 3.1.1技术可行性 5 3.1.2经济可行性 5 3.1.3运行可行性 6 3.2 系统流程 6 ...

    Springboot-demo

    SpringBoot旨在简化Spring应用的初始搭建以及开发过程,它集成了大量常用的第三方库配置,如数据源、JPA、MVC、安全等,让我们能够快速构建起强大的Web应用。本篇将围绕"Springboot-demo"这一主题,深入剖析...

    springboot_project-master_honor7gn_springboot简单实战后端代码_discoverqu

    SpringBoot 是一个由 Pivotal 团队开发的框架,旨在简化 Spring 应用程序的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如 JDBC、MongoDB、JPA、RabbitMQ、Quartz 等,使得开发者能够快速地创建一个独立...

    springboot-06-security.zip

    《Spring Boot安全实战:深入解析Spring Security》 Spring Security是Spring生态中用于处理应用程序安全性的强大框架,尤其在Spring Boot项目中,它提供了一种快速、灵活且强大的安全解决方案。本资料包...

    springboot-test.zip

    SpringBoot是由Pivotal团队提供的全新框架,其设计目标是简化Spring应用的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如数据源、JPA、MVC、security等,提供了自动配置的"starter" POMs来简化构建配置...

    spring-boot-examples-master.zip_gas4w6_springboot-example

    《Spring Boot实战示例解析》 Spring Boot是Java领域中一款极为流行的框架,它通过简化配置、自动配置和一站式的解决方案,使得开发基于Spring的应用变得简单高效。本压缩包"spring-boot-examples-master.zip_gas4...

    读书笔记:SpringBoot实战第二章Maven Demo.zip

    读书笔记:SpringBoot实战第二章Maven Demo

    SpringBoot实战(自带目录)第四版PDF下载

    《SpringBoot实战(自带目录)第四版》是针对Java开发者的一本深度技术指南,主要聚焦于Spring Boot框架的使用和实践。Spring Boot是由Pivotal团队提供的全新框架,旨在简化Spring应用的初始搭建以及开发过程。它...

    springboot-project-3:springboot-project-3

    【SpringBoot项目实战:springboot-project-3】 SpringBoot是由Pivotal团队提供的全新框架,其设计目标是用来简化新Spring应用的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如JPA、MVC、Swagger等,...

    springboot实战,javaee巅覆者

    第二章可能会涉及SpringBoot的自动配置机制,解释如何自定义配置以及如何创建自己的自动配置类。此外,还可能讲解如何使用SpringBoot的属性配置文件(application.properties或application.yml)进行配置。 第三章...

    SpringBoot实战-清晰

    在《Spring Boot实战》第四版中,作者深入浅出地讲解了Spring Boot的基础知识、核心特性和实际应用,为读者提供了一个全面的学习指南。 1. **Spring Boot简介** - **起步依赖(Starters)**:Spring Boot的核心...

    springboot实战 PDF.zip

    《SpringBoot实战》这本书是为Java开发者提供的一份详尽且实用的SpringBoot技术指南。SpringBoot是由Pivotal团队开发的一个框架,旨在简化Spring应用的初始搭建以及开发过程,它集成了大量的常用第三方库配置,如...

    SpringBoot-Seckill高性能秒杀系统.zip

    本项目是一个基于SpringBoot2.0框架开发的秒杀系统,源于慕课网实战课程的升级方案。技术栈包括SpringBoot、Maven、Mysql数据库、Redis缓存、Thymeleaf模板引擎、RabbitMQ消息队列以及Druid数据库连接池。通过优化...

    SpringBoot实战(第4版)清晰版

    3 小结 18 第 2 章开发第一个应用程序 19 2 . 1 运用 Spring Boot 19 2 . 1 . 1 查看初始化的 Spring soot 新项目 21 21 . 2 Spring Boot 项目构建过程解析 24 2 . 2 使川起步依赖, 27 2 . 2 . 1 指定基于功能的...

Global site tag (gtag.js) - Google Analytics