Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口

文章目录

  • SpringBoot2.x开发第一个JSON接口
  • SpringBoot2.x目录文件结构和官方推荐规范
    • 目录
    • 启动方式
  • SpringBoot2.x项目架构搭建
    • 创建项目
    • springboot接口,http的GET请求
    • springboot自定义返回对象,统一协议
    • springboot接口,http的POST请求
  • RequestBody对象数组提交接口开发
    • @RequestBody
  • SpringBoot2.X定制JSON字段
    • SpringBoot配置Jackson处理字段
    • jackson处理相关⾃动
      • 1、指定字段不返回
      • 2、指定日期格式
      • 3、空字段不返回
      • 指定别名
  • 可能遇到的问题
    • SpringBoot2.x使用IDEA方式无法启动
    • SpringBoot2.x使用jar方式打包无法启动
    • Postman下载/使用
      • 注册后

SpringBoot2.x开发第一个JSON接口

@Controller
作用: ⽤于标记这个类是⼀个控制器,返回⻚⾯的时候使⽤;如果要返回JSON,则需要在接⼝上使⽤@ResponseBody才可以

@RestController
作用: ⽤于标记这个类是⼀个控制器,返回JSON数据的时候使⽤,如果使⽤这个注解,则接⼝返回数据会被序列化为JSON

@RestController = @Controller+@ResponseBody

@RequestMapping
作用: 路由映射,⽤于类上做1级路径,⽤于某个⽅法上做⼦路径
位置: ①标识类:设置映射请求的请求路径的初始信息;②方法:设置映射请求的请求路径的具体信息

@SpringBootApplication
作用: ⽤于标记是SringBoot应⽤,⾥⾯包含多个⼦注解
@SpringBootApplication =@Configuration+@EnableAutoConfiguration+@ComponentScan

@Configuration
主要标注在某个类上,⽤于spring扫描注⼊,⼀般结合@Bean使⽤

@EnableAutoConfiguration
启⽤Spring的⾃动加载配置,⾃动载入应用程序所需的所有Bean

@ComponentScan
告诉spring扫描包的范围,默认是Applocation类所在的全部⼦包,可以指定
其他包

案例:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第1张图片
运行结果:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第2张图片

return 1个POJO对象(不能返回字符串)

SpringBoot2.x目录文件结构和官方推荐规范

目录

Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第3张图片

src/main/java:存放代码
src/main/resources
/static: 存放静态⽂件,⽐如 css、js、image, (访问⽅式http://localhost:8080/js/main.js)
/templates:存放静态⻚⾯jsp,html,tpl
/config:存放配置⽂件,application.properties

同个⽂件的加载顺序,静态资源⽂件Spring Boot 默认会挨个从META/resources >resources >static >public⾥⾯找是否存在相应的资源,如果有则直接返回,不在默认加载的⽬录,则找不到

默认配置spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/

配置文件application.properties:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第4张图片

启动方式

1、IDEA开发中启动(本地开发中常⽤)
2、外置Tomcat中启动(接近淘汰)
3、Jar方式打包启动(官方推荐,工作中最常用)
步骤:(1)pom⽂件新增maven插件
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第5张图片

如果没有加,则执⾏jar包 ,报错如下 java -jar spring-boot-demo-0.0.1-SNAPSHOT.jar no main manifest attribute, in spring-boot-demo-0.0.1-SNAPSHOT.jar

(2)打包、启动命令
构建:mvn install
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第6张图片构建跳过测试类:mvn install -Dmaven.test.skip=true
target⽬录下有对应的jar包就是打包后项⽬
进到对应的target⽬录启动:java -jar xxxxx.jar
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第7张图片后台运⾏,⽤守护进程:nohup java -jar xxx.jar &

SpringBoot2.x项目架构搭建

创建项目

1、配置启动类
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第8张图片
2、建立对应的包,先建立这些包,其他用到再补充
(1)controller
(2)service
(3)dao/mapper(与数据库交互语句的封装)
(4)domain(Javabean)
(5)utils(工具)

3、初始化数据

springboot接口,http的GET请求

@GetMapping = @RequestMapping(method = RequestMethod.GET)

@GetMapping = @RequestMapping(method = RequestMethod.GET)
@PostMapping = @RequestMapping(method = RequestMethod.POST)
@PutMapping = @RequestMapping(method = RequestMethod.PUT)
@DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)

Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第9张图片

案例思路:VideoController类方法调用VideoService接口的listVideo方法,VideoService接口的VideoServiceImpl实现类listVideo方法返回VideoMapper类的listVideo方法,VideoMapper类listVideo方法输出Video类型的list数据

运行启动类,获得查询到的json数据:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第10张图片

springboot自定义返回对象,统一协议

JSONData工具类开发
code:状态码(0,表示成功;1,表示处理中;-1表示失败)
data:数据
msg:描述

Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第11张图片
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第12张图片
运行启动类,获得查询到统一后的json数据:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第13张图片Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第14张图片

springboot接口,http的POST请求

POST请求->form表单
场景:表单提交,如果不⽤细分PUT/DELETE⽅法,则都可以⽤POST
@PostMapping = @RequestMapping(method = RequestMethod.POST)

Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第15张图片

案例思路:UserController类中login方法调用UserService接口的login方法,UserService接口的UserServiceImpl实现类login方法调用UserMapper类的login方法,UserMapper类login方法判断输入的密码是否正确对应输入的用户名,正确返回user对象,错误返回null给UserServiceImpl实现类,如果返回不为null,则使用UUID.randomUUID().toString()创建一个token“令牌”并返回token给UserController类中login方法,并进行判断token是否为null,是否正确。

运行启动类,在postman输入传入的接送数据,查询是否登陆成功:

登陆成功:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第16张图片
在这里插入图片描述
登录失败:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第17张图片

RequestBody对象数组提交接口开发

@RequestBody

作用: 把前端传来的参数自动封装到后端的javabean对象中,使用@RequestBody接收数据时,一般都用POST方式进行提交,并且后端接收前端传递来的多个参数信息的时候,可以直接使用一个对象接收

在传入参数前使用@RequestBody注解:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第18张图片
运行结果:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第19张图片Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第20张图片

SpringBoot2.X定制JSON字段

SpringBoot配置Jackson处理字段

Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第21张图片

jackson处理相关⾃动

1、指定字段不返回

@JsonIgnore

查询全部用户时:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第22张图片
运行结果:密码也返回了
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第23张图片
在user的javabean中的pwd字段使用@JsonIgnore注解:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第24张图片
运行结果:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第25张图片

2、指定日期格式

@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")
在这里插入图片描述
使用注解之前:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第26张图片
使用注解之后:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第27张图片

3、空字段不返回

@JsonInclude(Include.NON_NULL)
在这里插入图片描述
使用注解后运行:chapterList为null没有返回
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第28张图片

指定别名

@JsonProperty
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第29张图片
使用注解后运行:
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第30张图片

可能遇到的问题

SpringBoot2.x使用IDEA方式无法启动

1、当启动类和controller在同⼀类中时,在该类上添加注解@Controller即可;
2、当启动类和controller分开时,启动类要放在根⽬录下,启动类上只需要注解
@SpringBootApplication;
3、当启动类和controller分开时,如果启动类在⾮根⽬录下,需要在启动类中增加注解@ComponentScan,并配置需要扫描的包名,如(basePackages = )
@ComponentScan(basePackages ={“net.xdclass.controller”,“net.xdclass.service”})

SpringBoot2.x使用jar方式打包无法启动

terminal命令行执行java -jar xxxx.jar报错:Error: Unable to access jarfile xxxx.jar
在这里插入图片描述
1、确定生成的jar包位置:
在这里插入图片描述2、使用cd移动到生成的jar包位置(如果cd命令无法转到D盘的路径),重新执行java -jar xxxx.jar命令,成功。
Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第31张图片

Postman下载/使用

免费下载直通车

注册后

Springboot2.x快速入门(一)项目创建及启动、开发第一个JSON接口_第32张图片

你可能感兴趣的:(Springboot,java,springboot,spring)