目录

一、SpringBoot的简介

二、简单使用

创建springboot项目

使用Java代码

使用springboot写增删改查

优化:使用响应封装类

一、SpringBoot的简介

Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。
也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具

注意:

注1:敏捷式开发

注2:spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式, 就像maven整合了所有的jar包,spring boot整合了所有的框架

注3:基于Spring框架的一站式解决方

二、简单使用

使用idea新建一个springboot的项目

创建springboot项目

到这里就新建成功了

需要注意的是:在创建该项目时 勾选开发工具不能全勾 或者没有计划的配置却勾选 会报错

使用Java代码

测试一下 是否能用

创建成功后的项目便有一个Spring01Application 类

package com.cdl.spring01;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication()
public class Spring01Application {public static void main(String[] args) {SpringApplication.run(Spring01Application.class, args);}}

自己写一个controller

package com.cdl.spring01.demo;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author cdl* @site www.cdl.com* @create 2022-10-28 19:23*/
//RestController = @responseBody + @controller
@RestController
public class IndexController {@RequestMapping("/")public String index(){System.out.println("com in");//index的字符串return "index";}}

springboot有内置的tomcat

能够正常使用

修改配置

再运行

下载所需要的插件

右键选中修改配置的那个文件 转换一下格式

转换格式之后

使用springboot写增删改查

package com.cdl.spring01.demo;import jdk.nashorn.internal.objects.annotations.Constructor;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;/*** @author cdl* @site www.cdl.com* @create 2022-10-28 19:56*/
@RestController
@RequestMapping("/book")
public class BookController {@RequestMapping("/list")
//    @GetMapping("list")public Map list(){Map map = new HashMap();map.put("data", Arrays.asList(new Book(1,"足球"),new Book(2,"篮球"),new Book(3,"排球"),new Book(4,"羽毛球"),new Book(5,"台球")));map.put("total",168);map.put("msg","查询成功");map.put("code",200);return map;}@RequestMapping("/add")
//    @PutMapping("/add")public Map add(){Map map = new HashMap();map.put("msg","新增成功");map.put("code",200);return map;}@RequestMapping("/load")public Map load(){Map map = new HashMap();map.put("msg","加载成功");map.put("data",new Book(3,"排球"));map.put("code",200);return map;}@RequestMapping("/edit")
//    @PostMapping("/edit")public Map edit(){Map map = new HashMap();map.put("msg","修改成功");map.put("code",200);return map;}@RequestMapping("/delete")
//    @DeleteMapping("/delete")public Map delete(){Map map = new HashMap();map.put("msg","删除成功");map.put("code",200);return map;}
}//构造器
//@Constructor
@AllArgsConstructor
@Data
class Book{private int id;private String name;}

增加

修改

删除

查询

将方法注释换成

package com.cdl.spring01.demo;import jdk.nashorn.internal.objects.annotations.Constructor;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;/*** @author cdl* @site www.cdl.com* @create 2022-10-28 19:56*/
@RestController
@RequestMapping("/book")
public class BookController {@RequestMapping("/list")//@GetMapping("list")public Map list(){Map map = new HashMap();map.put("data", Arrays.asList(new Book(1,"足球"),new Book(2,"篮球"),new Book(3,"排球"),new Book(4,"羽毛球"),new Book(5,"台球")));map.put("total",168);map.put("msg","查询成功");map.put("code",200);return map;}@RequestMapping("/add")
//    @PutMapping("/add")public Map add(){Map map = new HashMap();map.put("msg","新增成功");map.put("code",200);return map;}@RequestMapping("/load")public Map load(){Map map = new HashMap();map.put("msg","加载成功");map.put("data",new Book(3,"排球"));map.put("code",200);return map;}@RequestMapping("/edit")
//    @PostMapping("/edit")public Map edit(){Map map = new HashMap();map.put("msg","修改成功");map.put("code",200);return map;}// @RequestMapping("/delete")@DeleteMapping("/delete")public Map delete(){Map map = new HashMap();map.put("msg","删除成功");map.put("code",200);return map;}
}//构造器
//@Constructor
@AllArgsConstructor
@Data
class Book{private int id;private String name;}

 优化:使用响应封装类

新建一个result的包

放入错误编码类

package com.cdl.spring01.Result;public class CodeMsg {private int code;private String msg;//通用的错误码public static CodeMsg SUCCESS = new CodeMsg(200, "success");public static CodeMsg SERVER_ERROR = new CodeMsg(500, "服务端异常");public static CodeMsg BIND_ERROR = new CodeMsg(500101, "参数校验异常:%s");public static CodeMsg REQUEST_ILLEGAL = new CodeMsg(500102, "请求非法");public static CodeMsg ACCESS_LIMIT_REACHED = new CodeMsg(500104, "访问太频繁!");//登录模块5002XXpublic static CodeMsg SESSION_ERROR = new CodeMsg(500210, "Session不存在或者已经失效");public static CodeMsg PASSWORD_EMPTY = new CodeMsg(500211, "登录密码不能为空");public static CodeMsg MOBILE_EMPTY = new CodeMsg(500212, "手机号不能为空");public static CodeMsg MOBILE_ERROR = new CodeMsg(500213, "手机号格式错误");public static CodeMsg MOBILE_NOT_EXIST = new CodeMsg(500214, "手机号不存在");public static CodeMsg PASSWORD_ERROR = new CodeMsg(500215, "密码错误");//商品模块5003XX//订单模块5004XXpublic static CodeMsg ORDER_NOT_EXIST = new CodeMsg(500400, "订单不存在");//秒杀模块5005XXpublic static CodeMsg MIAO_SHA_OVER = new CodeMsg(500500, "商品已经秒杀完毕");public static CodeMsg REPEATE_MIAOSHA = new CodeMsg(500501, "不能重复秒杀");public static CodeMsg MIAOSHA_FAIL = new CodeMsg(500502, "秒杀失败");private CodeMsg() {}private CodeMsg(int code, String msg) {this.code = code;this.msg = msg;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public CodeMsg fillArgs(Object... args) {int code = this.code;String message = String.format(this.msg, args);return new CodeMsg(code, message);}@Overridepublic String toString() {return "CodeMsg [code=" + code + ", msg=" + msg + "]";}
}

统一响应类

package com.cdl.spring01.Result;public class Result<T> {private int code;private String msg;//因为返回的数据不知道是什么类型,所以定义一个泛型private T data;private long total;public long getTotal() {return total;}public void setTotal(long total) {this.total = total;}/*** 成功的时候调用*/public static <T> Result<T> ok(T data) {return new Result<T>(data);}public static <T> Result<T> ok(int code,String msg) {return new Result<>(code,msg);}public static <T> Result<T> ok(int code,String msg,T data) {Result<T> success = ok(data);success.setCode(code);success.setMsg(msg);return success;}public static <T> Result<T> ok(int code,String msg,T data,long total) {Result<T> success = ok(code,msg,data);success.setTotal(total);return success;}/*** 失败的时候调用*/public static <T> Result<T> error(CodeMsg codeMsg) {return new Result<T>(codeMsg);}private Result(T data) {this.data = data;}private Result(int code, String msg) {this.code = code;this.msg = msg;}private Result(CodeMsg codeMsg) {if (codeMsg != null) {this.code = codeMsg.getCode();this.msg = codeMsg.getMsg();}}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public T getData() {return data;}public void setData(T data) {this.data = data;}
}

controller

package com.cdl.spring01.demo;import com.cdl.spring01.Result.CodeMsg;
import com.cdl.spring01.Result.Result;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;/*** @author cdl* @site www.cdl.com* @create 2022-10-28 19:56*/
@RestController
@RequestMapping("/book2")
public class BookController02 {
//    @RequestMapping("/list")@GetMapping("list")public Result list(){return Result.ok(200,"查询成功",Arrays.asList(new Book(1,"足球"),new Book(2,"篮球"),new Book(3,"排球"),new Book(4,"羽毛球"),new Book(5,"台球")),168);}//    @RequestMapping("/add")@PutMapping("/add")public Result add(){return Result.ok(200,"新增成功");}@RequestMapping("/load")public Result load(){return Result.ok(200,"加载成功",new Book(3,"排球"));}//    @RequestMapping("/edit")@PostMapping("/edit")public Result edit(){return Result.ok(200,"修改成功");}//    @RequestMapping("/delete")@DeleteMapping("/delete")public Result delete(){return Result.ok(200,"删除成功");}@RequestMapping("/queryByUser")public Result queryByUser(){return Result.error(CodeMsg.BIND_ERROR.fillArgs("密码等级太低"));}
}

使用测试工具postman测试结果

查询

新增

修改

删除

SpringBoot:入门简单使用相关推荐

  1. 最简单最详细的SpringBoot入门项目——HelloWorld

    最详细的SpringBoot入门项目--HelloWorld 关于SpringBoot的介绍以及优点这里就不说了,想了解的可以直接点击这里 Spring Boot百度百科 接下来我们直奔主题,开始用S ...

  2. SpringBoot入门建站全系列(二十七)WebSocket做简单的聊天室

    SpringBoot入门建站全系列(二十七)WebSocket做简单的聊天室 一.概述 WebSocket 是一种网络通信协议.RFC6455 定义了它的通信标准. WebSocket 是 HTML5 ...

  3. SpringBoot入门(二)——起步依赖

    本文来自网易云社区 在前一篇我们通过简单几步操作就生成了一个可以直接运行的Web程序,这是因为SpringBoot代替我们做了许多工作,概括来讲可以分为起步依赖和自动配置.这一篇先来看看起步依赖. 项 ...

  4. springboot 入门教程(4)--web开发(spring mvc和Thymeleaf模板,带源码)

    2019独角兽企业重金招聘Python工程师标准>>> 首先回顾下前几篇的内容:springboot 入门教程(1),springboot 入门教程-Thymeleaf(2), sp ...

  5. springboot 历史版本文档_乘风破浪,SpringBoot入门

    SpringBoot入门篇 前言 在普通的java项目中,大量的xml文件配置起来相当繁琐,导致了开发效率非常低下,整合第三方框架的配置可能会存在冲突问题导致部署效率低,打包方式是将项目打成一个war ...

  6. SpringBoot入门到精通_第1篇 _核心概念

    SpringBoot 必知必会 核心精粹 文章目录 一.SpringBoot必知必会 1. 是什么?能做什么? 2. 有哪些特性? 一.SpringBoot必知必会 1. 是什么?能做什么? 是什么? ...

  7. 【Java从0到架构师】SpringBoot - 入门_配置文件_YAML

    SpringBoot - 入门_配置文件_YAML SpringBoot - 入门 @SpringBootApplication 可运行 jar - spring-boot-maven-plugin ...

  8. SpringBoot 入门

    SpringBoot 入门 SpringBoot的特点 解决了复杂的配置,统一依赖管理: // 自动配置.起步依赖.命令行界面.Actuator- 为开发者提供一个非常快速的.广泛接受的入门体验- 开 ...

  9. SpringBoot入门操作笔记[+mybatismysql]

    文章目录 SpringBoot入门操作笔记[+mybatis&mysql] 1. 创建工程 1.1. 新建SpringBoot项目 1.2. 配置Maven 1.3. 编码配置 2. 项目结构 ...

最新文章

  1. uniapp添加顶部导航栏颜色渐变
  2. 美创企推出仅90斤的物流无人车,成本低至5000美元
  3. Linux下常用软件
  4. iframe学习总结
  5. 成功解决Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AVX2(二)
  6. 获得Google搜索字符串中的关键字
  7. Php7实现文件下载,PHP7 SFTP下载文件并重命名该下载文件
  8. ZJOI2019赛季回顾
  9. 学士学位非计算机专业考试真题,大学学位计算机考试习题
  10. L2-016 愿天下有情人都是失散多年的兄妹 CCCC
  11. gRPC-go 入门(1):Hello World
  12. 计算机专业个人能力评估,计算机应用专业毕业生个人自我评价
  13. mybaitplus 根据id批量进行修改_phpcms小程序插件api接口升级到4.3(新增批量获取、搜索等接口)...
  14. 苹果电脑如何使用Tuxera NTFS for mac抹掉NTFS格式
  15. Jquery_artDialog对话框弹出
  16. DSP指纹识别系统硬件设计
  17. Erlang中的fun函数使用详解
  18. mac 上 csv导入Excel 出现 “此文本文件包含的数据无法放置在一个工作表” 错误
  19. 求职秘籍-如何准备面试?
  20. linux mint 19.1 安装steam, 打开无反映的解决办法

热门文章

  1. char, unsigned char, int,unsigned int之间的相互转换
  2. JavaSE基础笔记(全)
  3. 1.设计一个长方形的类,成员变量有长与宽,成员函数有求周长与面积,然后进行测试。要求有构造函数、析造函数和复制构造函数。
  4. 新版本android_id,android手机唯一id方案总结
  5. java maptodouble_Lambda表达式mapToDouble.sum精度问题
  6. RocketMQ(七)RocketMQ消息生产及消息储存机制
  7. java实现上位机与下位机串口通信
  8. 计算机领域哪个证值钱,最值钱且相对好考的证书有哪些?
  9. 一道数学题,让芯片巨头亏了5亿美金!
  10. 关于qqv8.8.17版如何关闭QQ看点