SpringBoot2.0入门(详细文档)

文章目录

  • Springboot是什么
  • Springboot2.x依赖环境和版本新特性说明
  • 为什么学习Springboot
    • 从springboot优点来看
    • 从未来发展的趋势来看
  • 开发环境
  • Spring Boot开发环境搭建和项目启动
    • jdk 的配置
    • Spring Boot 工程的构建
      • maven配置
      • IDEA 快速构建
      • maven 创建工程
      • 常用注解
  • 完整代码

Springboot是什么

Spring Boot是一个用于开发Java应用程序的开源框架。它基于Spring框架,简化了Spring应用程序的配置和部署过程。Spring Boot通过自动配置来减少开发者的工作量,提供了一种快速构建应用程序的方式。

Springboot2.x依赖环境和版本新特性说明

讲解新版本依赖环境和Springboot2新特性概念

  1. 依赖版本jdk8以上,Springboot2.x用JKD8,因为底层是Spring framework5,
  2. 安装maven最新版本,maven3.2以上版本
  3. 新特性
  4. 翻译工具:https://translate.google.cn/
  5. springbootGitHub地址:http://github.com/spring-projects/spring-boot
  6. Springboot官方文档:http://spring.io/guides/gs/spring-boot

为什么学习Springboot

从springboot优点来看

  1. 简化配置:Spring Boot提供了自动配置的功能,可以根据项目的依赖和环境自动配置应用程序。开发者无需手动配置大量的XML文件或注解,可以快速搭建整个项目的基础框架。
  2. 快速开发:Spring Boot提供了许多开箱即用的功能和扩展库,可以大大减少开发时间和工作量。开发人员可以通过使用这些功能和库快速搭建应用程序,而无需重复编写常见的代码。
  3. 独立性:Spring Boot应用程序可以作为独立的可执行文件运行,无需外部的Web服务器。它内置了嵌入式Web服务器(如Tomcat、Jetty等),可以直接运行应用程序。这样可以减少部署和运维的复杂性
  4. 易于测试:Spring Boot提供了一系列的测试工具和框架,可以方便地进行单元测试、集成测试和端到端测试。开发者可以使用这些工具来保证应用程序的质量和稳定性。
  5. 生态系统:Spring Boot是在Spring框架之上构建的,可以充分利用Spring框架丰富的生态系统。开发者可以方便地集成其他Spring组件和第三方库,提供更灵活和可扩展的解决方案。

从未来发展的趋势来看

Spring Boot未来发展的趋势是更加注重微服务架构、云原生应用、响应式编程、安全性增强以及更好的集成和开发体验。这些趋势将有助于Spring Boot在未来持续地发展和壮大,并进一步提升在开发者中的地位和影响力。

开发环境

开发工具

  • JDK版本
  • Spring Boot版本
  • Maven版本:3.5.2

涉及到的插件:

  • FastJson
  • Swagger2
  • Thymeleaf
  • MyBatis
  • Redis
  • ActiveMQ
  • Shiro
  • Lucence
  • YAML

Spring Boot开发环境搭建和项目启动

jdk 的配置

使用 IDEA 进行开发,在IDEA 中配置 jdk 的方式很简单,打开文件->项目结构,如下图所
在这里插入图片描述

  1. 选择 SDKs
  2. 在 JDK home path 中选择本地 jdk 的安装目录
  3. 在 Name 中为 jdk 自定义名字

Spring Boot 工程的构建

maven配置

创建了 Spring Boot 项目之后,需要进行 maven 配置。打开文件->设置,搜索 maven,配置一下本地的 maven 信息。如下
在这里插入图片描述

IDEA 快速构建

在IDEA 中可以通过文件->新建->项目来快速构建 Spring Boot 工程。如下,选择 Spring Initializr,在 Project SDK 中选择刚刚我们导入的 jdk,点击 Next,到了项目的配置信息。
组:填企业域名,本课程使用com.itcodai
工件:填项目名称,本课程中每一课的工程名以course+课号命令,这里使用 course01
依赖项:可以添加我们项目中所需要的依赖信息,根据实际情况来添加,本课程只需要选择 Web 即可。

maven 创建工程

Springboot是建立在maven上的我们只需要创建一个maven工程导入SpringBoot依赖即可
不需要选择原型
在这里插入图片描述
输入项目名称点击完成即可
在这里插入图片描述

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.7</version>
</parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
</dependencies>

在这里插入图片描述

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;//这是一个复合注解,通常情况下,我们会把启动类放到项目的顶级目录
//注意:SpringBootApplication中的@ComponentScan会默认扫描本类所在包一下的子包
@SpringBootApplication
public class DemoAplication {public static void main(String[] args) {SpringApplication.run(DemoAplication.class,args);}
}

在这里插入图片描述

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class HelloController {@RequestMapping("/")public String hello(){return "hello";}
}

在这里插入图片描述
重新运行 main 方法启动项目,在浏览器中输入 localhost:8080,如果看到“hello”,那么恭喜你项目启动成功!Spring Boot 就是这么简单方便!端口号默认是8080,如果想要修改,可以在 application.properties 文件中使用 server.port 来人为指定端口,如811端口

server.port=811

常用注解

启动类的注解
@SpringBootApplication是一个复合注解。@SpringBootApplication=@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan
@SpringBootConfiguration:@SpringBootConfiguration标注在类上,相当与把该类作为Spring的xml配置文件中的<beans> 作用为:配置Spring容器(应用上下文)
@EnableAutoConfiguration:开启自动配置。MATA-INF下的Spring.facotries的一些自动配置类
@ComponentScan:扫描注解。如果不配置basepackage,默认扫描@ComponentScan注解类的同级类和子目录下的所有类。所以要把启动类放到顶级目录。
控制层的注解
@RestController and @RequestMapping是SpringMvc的注解,不是SpringBoot的特有的
@RestController = @Controller+@ResponseBody

完整代码

//bean类
import com.fasterxml.jackson.annotation.*;
import lombok.Data;import java.io.Serializable;
import java.util.Date;@Data
public class Person implements Serializable {private String userid;@JsonIgnore//字段不返回private int age;@JsonFormat(pattern = "yyyy-MM-dd")//指定时间格式private Date time;@JsonProperty("dizi")//指定别名 注意:使用别名后,请求中key也要使用别名private String address;@JsonInclude(JsonInclude.Include.NON_NULL)//空字段不返回private String mailbox;}
Controllerimport com.demo.bean.Person;
import org.springframework.web.bind.annotation.*;@RestController
public class HelloController {@RequestMapping("/")public String hello(){return "hello";}/*** 功能描述:restful协议。从路径中获取参数* 1.接口中的参数定义,建议使用下划线隔开,不在使用驼峰* 2.path="/{cityid}/{userid}",标识路径中那些参数* 3.method=RequestMethod.GET,只处理get请求* 4.@PathVariable("cityid"),从路径中取出参数值* @return*/@RequestMapping(value = "/{cityid}/{userid}",method = RequestMethod.GET )public Object test(@PathVariable("cityid")String cityid,@PathVariable("userid")String userid){return cityid+"---"+userid;}/***参数的默认值设置* 添加@RequestParam 默认此参数是必填的* @return*/@RequestMapping("/test02")public Object test02(@RequestParam(required = false,defaultValue = "2") Integer pageNo){return pageNo;}/*** 测试@RequestBody。要从请求体中获取数据* 有如下要求:* 1.数据要在请求体中* 2.数据的格式为content-type 是值是application/json* @return*/@RequestMapping("/test03")public Object test03(@RequestBody Person person){return person;}/*** 从请求头获取数据* 一般情况下请求头中放置认证信息,例如access_token* @param access_token* @return*/@RequestMapping("/test04")public Object test04(@RequestHeader String access_token){return access_token;}/*** 获取实体类的参数* @JsonIgnore//字段不返回* @JsonFormat(pattern = "yyyy-MM-dd")//指定时间格式* @JsonProperty("")//指定别名 注意:使用别名后,请求中key也要使用别名* @JsonInclude(JsonInclude.Include.NON_NULL)//空字段不返回* @return*/@RequestMapping("/test05")public Object test05(@RequestBody Person person){return person;}
}
//pom.xml
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.5</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.1</version></dependency></dependencies>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/130598.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023高教社杯数学建模B题思路代码 - 多波束测线问题

# 1 赛题 B 题 多波束测线问题 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播&#xff0c; 在不同界面上产生反射&#xff0c; 利用这一原理&#xff0c;从测量船换能器垂直向海底发射声波信 号&#xff0c;并记录从声波发射到…

使用融云 CallPlus SDK,一小时实现一款 1V1 视频应用

9 月 21 日&#xff0c;融云直播课 社交泛娱乐出海最短变现路径如何快速实现一款 1V1 视频应用&#xff1f; 欢迎点击小程序报名~ 1V1 音视频、远程服务类应用的实现利器——融云 CallPlus SDK 上线&#xff01; 关注【融云全球互联网通信云】了解更多 作为新一代音视频通话场…

基于Python和mysql开发的看图猜成语微信小程序(源码+数据库+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python和mysql开发的看图猜成语微信小程序&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含&#xff1a;项目源码、项目文档、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都…

2022年全国研究生数学建模竞赛华为杯A题移动场景超分辨定位问题求解全过程文档及程序

2022年全国研究生数学建模竞赛华为杯 A题 移动场景超分辨定位问题 原题再现&#xff1a; 在日常家庭生活中&#xff0c;人们可能需要花费大量时间去寻找随意摆放在家中某些角落里的小物品。但如果给某些重要物品贴上电路标签&#xff0c;再利用诸如扫地机器人的全屋覆盖能力&…

前端实现页面通过canvas添加全屏水印

写在前面&#xff0c;博主是个在北京打拼的码农&#xff0c;从事前端工作5年了&#xff0c;做过十多个大大小小不同类型的项目&#xff0c;最近心血来潮在这儿写点东西&#xff0c;欢迎大家多多指教。 对于文章中出现的任何错误请大家批评指出&#xff0c;一定及时修改。有任何…

视频直播点播平台EasyDSS如何单独保存录像计划文件?具体如何操作呢?

视频推拉流EasyDSS视频直播点播平台&#xff0c;集视频直播、点播、转码、管理、录像、检索、时移回看等功能于一体&#xff0c;可提供音视频采集、视频推拉流、播放H.265编码视频、存储、分发等视频能力服务。 有用户反馈&#xff1a;在视频直播点播平台EasyDSS中设置了片段形…

【数据结构--二叉树】合并二叉树

/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/struct TreeNode* mergeTrees(struct TreeNode* root1, struct TreeNode* root2){if(root1NULL&&root2NULL)//两个二叉树都…

华为云云耀云服务器L实例评测|Linux系统之安装Tomcat

华为云云耀云服务器L实例评测&#xff5c;Linux系统之安装Tomcat 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点 二、Tomcat介绍2.1 Tomcat简介2.2 Tomcat特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、购买云耀云服务器L实例4.…

risc-v dv源代码分析

地址为 GitHub - chipsalliance/riscv-dv: Random instruction generator for RISC-V processor verificationRandom instruction generator for RISC-V processor verification - GitHub - chipsalliance/riscv-dv: Random instruction generator for RISC-V processor verif…

Windows驱动开发(一)

1. 引言 很难为术语 “驱动程序”提供一个精确的定义。 就最基本的意义而言&#xff0c;驱动程序是一个软件组件&#xff0c;可让操作系统和设备彼此通信。 例如&#xff0c;假设应用程序需要从设备中读取某些数据。 应用程序会调用由操作系统实现的函数&#xff0c;操作系统…

Windows下Git Bash的基本使用

创建版本库 git init 初始化完成后&#xff0c;会在目录下创建一个.git的隐藏目录&#xff0c;用来存放项目信息。 、 添加文件到版本库 在项目目录下新建文件readme.txt&#xff0c;内容为 Git is a version control system Git is a free software This is my first Try …

MySQL知识笔记——初级基础(实施工程师和DBA工作笔记)

老生长谈&#xff0c;MySQL具有开源、支持多语言、性能好、安全性高的特点&#xff0c;广受业界欢迎。 在数据爆炸式增长的年代&#xff0c;掌握一种数据库能够更好的提升自己的业务能力&#xff08;实施工程师&#xff09;。 此系列将会记录我学习和进阶SQL路上的知识&#xf…

Haproxy搭建Web群集

常见的Web集群调度器分为软件和硬件 软件通常使用开源的LVS、Haproxy、Nginx。 * LVS 性能最好&#xff0c;但是搭建相对复杂 * Nginx的upstream模块支持群集功能&#xff0c;但是对群集节点健康检查功能不强&#xff0c;高并发性能没有Haproxy好。 硬件一般使用比较多的是F5、…

postman连接websocket 测试(v8.5.1)

1. postman v8.5版本 以上支持 websocket。 2. 选择websocket请求模块File - New... 3. 输入请求地址, ws:// 控制台输出: 2023-09-12 15:29:23.039 INFO 11592 --- [nio-8080-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet di…

sql注入之高权限注入和文件读写

死在山野的风里&#xff0c;活在自由的梦里 sql注入之高权限注入 高权限注入1.多个网站共享mysql服务器2.MySQL 权限介绍3.注入流程查询所有数据库名称查询表名对应的字段名查询数据 文件读写1.文件读写注入的原理2.文件读写注入的条件3.读取文件4.写入文件 高权限注入 在数据…

学习SpringMvc第三战-利用SpringMvc实现CRUD

目录 一.前期环境搭建 1.替换pom.xml的内容 2.导入配置文件(小编上传资源) 3.修改xml文件 4.点击创建自动生成代码 5.写一个类用于处理页面跳转 二.正式启动SpringMVC的CRUD 1.建立接口&#xff0c;调用自动生成的接口 2.构建分页代码 2.1书写BookMapper.xml中分页的方…

12个最受欢迎的3D打印机械臂【开源|DIY|套件】

推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 机器人手臂的用途各不相同&#xff0c;但大多数都能够执行拾取和放置任务&#xff0c;而有些则配备用于 CNC 工作、激光雕刻&#xff0c;甚至 3D 打印。 机械臂具有广泛的应用和各个领域&#xff0c;从执行精密手术和进行工…

Kafka3.0.0版本——消费者(分区的分配以及再平衡)

目录 一、分区的分配以及再平衡1.1、消费者分区及消费者组的概述1.2、如何确定哪个consumer来消费哪个partition的数据1.3、消费者分区分配策略 一、分区的分配以及再平衡 1.1、消费者分区及消费者组的概述 一个consumer group中有多个consumer组成&#xff0c;一个 topic有多…

go语言基本操作---六

并发编程 并行&#xff1a;指在同一时刻&#xff0c;有多条指令在多个处理器上同时执行。 并发&#xff1a;指在同一时刻只能有一条指令执行&#xff0c;但是多个进程指令被快速的轮换执行&#xff0c;使得在宏观上具有多个进程同时执行的效果&#xff0c;但在微观上并不是同时…

python机器人编程——用python实现一个写字机器人

目录 一、前言二、整体框架2.1 系统构成2.2 硬件介绍2.2.1主要组成部分2.2.2机械结构2.2.3驱动及控制主板PS电机驱动原理简介: 2.2.4其余部分 2.3 机器人python程序框架2.3.1通信服务模块2.3.2消息处理模块2.3.3轨迹解析模块2.3.4机械臂逆解模块2.3.5写字板模块 三、机械臂的建…