自学内容网 自学内容网

SpringBoot框架快速入门

1、起步依赖

1.概述

  • 在入门案例中,我们引入了web依赖和test依赖,这两个依赖是SpringBoot中的starter依赖,starter依赖也被称为起步依赖
  • SpringBoot 在配置上相比Spring要简单许多,其核心在于spring-boot-starter,在使用SpringBoot来搭建一个项目时,只需要引入官方提供的starter,就可以直接使用,免去了各种配置。starter简单来讲就是引入了一些相关依赖和一些初始化的配置
  • Spring官方提供了很多starter,第三方也可以定义starter。为了加以区分,starter从名称上进行了如下规范
    • Spring官方提供的starter名称为:spring-boot-starter-xxx 例如Spring官方提供的spring-boot-starter-web
    • 第三方提供的starter名称为:xxx-spring-boot-starter 例如由mybatis提供的mybatis-spring-boot-starter

2.详解

2.1.起步依赖
  • 起步依赖其实就是将具备某种功能的坐标打包到一起,可以简化依赖导入的过程。例如,我们导入spring-boot-starter-web这个starter,则和web开发相关的jar包都一起导入到项目中了。如下图所示
  • spring-boot-starter-web导入的其实是一个Web框架Spring-MVC的依赖,在SpringBoot项目中自动做了整合,后续我们会进行讲解

2.2.web依赖

  • spring-boot-starter-web:内部把关于Web开发所有的依赖都已经导入并且指定了版本,只需引入 spring-boot-starter-web 依赖就可以实现Web开发的需要的功能
2.3.test依赖
  • spring-boot-starter-test:内部包含了单元测试所需要的常见依赖
2.4.官方起步依赖
  • Spring的官方提供了很多现成的starter,我们在开发相关应用时,只需要引入对应的starter即可
  • 每一个起步依赖,都用于开发一个特定的功能,例如:当我们开发中需要使用redis数据库时,只需要在SpringBoot项目中,引入:springboot-starter-redis ,即可导入redis开发所需要的依赖

2、统一版本管理

1.概述

  • 在入门案例中,我们通过maven引入的依赖,是没有指定具体的依赖版本号的,这是因为SpringBoot使用了Maven的继承,每一个SpringBoot工程都有一个父工程,依赖的版本号,在父工程中统一管理

2.详解

2.1.spring-boot-starter-parent
  • 按住ctrl点击parent中的spring-boot-start-parent可以进入到spring-boot-starter-parent-2.7.14.pom文件,在这个父pom文件中可以看到插件的配置、资源的声明以及Java 版本、编码格式等信息
  • SpringBoot最低支持JDK1.8,这也是因为在父pom中定义的版本就是1.8
2.2.spring-boot-dependencies
  • 在spring-boot-starter-parent-2.7.14.pom文件中,也有一个parent父依赖,在此父pom中可以看到所有依赖的版本定义,以及dependencyManagement、pluginManagement节点,这就是项目依赖可以省略version 的原因

2.3.Maven管理标签

  • properties:在标签内可以把版本号作为变量进行声明,后面dependency中用到版本号时可以用${变量名}的形式代替,这样做的好处在于当版本号发生改变时,只要更新properties标签中的变量就行了,不用更新所有依赖的版本号
  • dependencyManagement:在父工程pom文件中声明依赖,但不引入依赖到项目中。在子工程中用到声明的依赖时,可以不加依赖的版本号,这样可以做到统一管理工程中用到的依赖版本
  • build:描述了如何编译及打包项目,具体的编译和打包工作是通过其中的plugin配置来实现的,Maven的所有操作其根本都是通过插件进行实现的
  • pluginManagement:作用与dependencyManagement一样,也是声明插件但不引入。在子工程中用到声明的插件时,可以不加插件的版本号,这样可以做到统一管理工程中用到的插件版本

3、内嵌Tomcat

1.概述

  • 在前一天我们学习过Web服务器Tomcat,我们知道一个程序想要运行需要放入到Web服务器中。但是我们的SpringBoot工程并没有把程序部署在Tomcat下也能运行,原因就是SpringBoot内嵌了Tomcat服务器

2.详解

  • SpringBoot的起步依赖spring-boot-starter-web中已经引入了Tomcat,那么也就是意味着当前项目是有Tomcat相关功能的,所以在SpringBoot中可以直接使用Tomcat服务器
  • 在SpringBoot项目启动时,其占用的端口号8080就是Tomcat

4、主启动类

  • 当一个类有了@SpringBootApplication这个注解他就是主启动类,SpringBoot就是运行这个类的main方法来启动SpringBoot应用
  • 启动类位置:必须在项目的公司域名下,如果公司域名下有项目包文件夹,那么应该放在项目包文件夹下,也就是保证启动类是所有Java代码的平级或父级
    • cn.itsource.XxxApp
    • cn.itsource.项目包文件夹.XxxApp
  • 启动类命名规则
    • 项目名称+Application
    • 项目名称+App

5、Yml配置文件

1.概述

  • 在SpringBoot项目中我们启动时是使用的Tomcat的默认端口号8080,那么如果我们不想使用默认端口号就需要去配置文件中进行修改
  • SpringBoot的配置文件有三种,优先级最高的是properties,如果内容发生冲突以properties为主,如果内容不冲突那么都生效
    • application.properties
    • application.yaml
    • application.yml
  • 我们使用骨架进行SpringBoot项目创建时会有一个默认的配置文件application.properties,只不过里面是空的,SpringBoot的配置文件存放位置就在resources中

2.详解

2.1.properties写法

  • properties配置文件是以key=value的方式编写配置,编写比较繁杂不建议使用
2.2.Yaml/Yml写法
  • yaml和yml在写法上是一致的,只不过通常我们使用简写yml作为文件后缀
  • 编写规则:yaml/yml编写语法极其严格,如果编写错了会有警告,请时常注意右上角的提示
    • key和value之间除了有冒号在冒号后面还必须有空格:key: value
    • 配置前缀层级关系只能以一个Tab的空格,不能多也不能少
    • key和value都区分大小写,如果是驼峰那么一般是以-代替大写,例如:驼峰contextPath替换为context-path
    • value如果是字符串不需要加双引号
  • 注意:编写错误右上角会有提示,有的时候是误报要注意区别
2.3.Profile多环境支持
  • 什么是多环境支持:就是在项目中编写多套环境的配置,例如
    • dev:开发环境,端口号为8081
    • pro:生产环境,端口号为8082
    • test:测试环境,端口号为8083
  • 为什么需要多环境支持:编写多套环境配置在不同环境中我们可以进行快速切换,而不需要再去修改原有配置,更加高效
  • 方式一:Yml多文档块模式
# 最上面的就是默认配置,默认配置不需要指定profile
server:
  # 设置端口号
  port: 8081
spring:
  profiles:
    # 要启动的环境标识,如果环境标识在下面找不到那么就启动默认配置
    active: dev

# 每套环境中间需要有此分隔符,分隔每套环境
---
server:
  # 设置端口号
  port: 8082
spring:
  config:
    activate:
      on-profile: pro

---
server:
  # 设置端口号
  port: 8083
spring:
  config:
    activate:
      on-profile: test

  • 方式二:多profile文件模式
    • 不同的环境写在不同的Yml文件中,在主yml中进行引用
    • 环境配置文件命名规则:application-{profile}.yml

SpringMVC

2.1.概述

  • 什么是SpringMVC:SpringMVC属于SpringFrameWork的后续产品,SpringMVC是Spring框架中Servlet的一部分
  • SpringBoot中已经封装好了SpringMVC框架,我们只需要导入起步依赖spring-boot-starter-web即可使用
  • SpringMVC中有一个非常重要的Servlet类,叫做DispatcherServlet,这也是SpringMVC的核心功能
  • Spring、SpringMVC、SpringBoot关系如下
2.2.DispatcherServlet

  • SpringBoot封装了Spirng,而在Spring中包含了SpringMVC,SpringMVC提供了一个DispatcherServlet类,称之为核心控制器
  • DispatcherServlet 负责接收页面发送的请求,然后根据执行的规则,将请求再转发给后面的请求处理器Controller,请求处理器处理完请求之后,最终再由DispatcherServlet给浏览器响应数据
  • DispatcherServlet就是SpringMVC框架中提供的一个核心Servlet,专门帮助我们处理请求

2.3.请求&响应对象

  • 浏览器发送请求,会携带请求数据,包括:请求行、请求头;请求到达Tomcat之后,Tomcat会负责解析这些请求数据
  • 然后将解析后的请求数据会传递给Servlet程序的HttpServletRequest对象,那也就意味着 HttpServletRequest 对象就可以获取到请求数据,例如:请求参数、请求IP、请求头信息等等
  • Tomcat还给Servlet程序传递了一个参数 HttpServletResponse,通过这个对象,我们就可以给浏览器设置响应数据

3.接口

  • 控制器类中的方法通常而言我们俗称接口,此接口非Java中定义的接口,是两个不同的东西
    • Java中的接口:是一个类
    • Controller层的接口:是一个请求方法/控制器类方法
  • 例如
    • 前端人员:你把SpringBoot入门接口地址给我一下
  • 接口也被称为一个资源:请求后端接口也可以是请求后端资源/访问资源

2、Json数据格式

  • Json数据格式
    • 一个对象:{"key1":"value1","key2":"value2"...}
    • 多个对象:[{"key1":"value1","key2":"value2"...},{"key1":"value1","key2":"value2"...},{"key1":"value1","key2":"value2"...}]
  • 注意:JSON数据格式就是以 "key":value 形式的数据格式,KEY必须 以 "" 包裹起来,并且如果value是字符串也必须以 "" 包裹起来,如果不是字符串那么正常写就可以

原文地址:https://blog.csdn.net/LG_971124/article/details/142560704

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!