SpringBoot

学习目标

  1. 掌握基于SpringBoot框架的程序开发步骤
  2. 熟练使用SpringBoot配置信息修改的服务器配置
  3. 基于SpringBoot的完成SSM整合项目开发

入门案例

步骤:SpringBoot入门程序

  1. 创建新模块,选择Spring初始化,并配置模块相关基础信息
  2. 选贼当前模块需要使用的技术集
  3. 开发控制器类
  4. 运行自动生成的Application类
  • 最简SpringBoot程序所包含的基础文件
  • pom.xml
  • Application类
  • Spring程序与SpringBoot程序对比

注意事项:基于idea开发SpringBoot程序需要确保联网且能够加载到程序框架结构

  • 基于SpringBoot官网创建项目

SpringBoot项目快速启动

  • 前后端分离合作开发

步骤

  1. 对SpringBoot项目打包(执行Maven构建指令package)
  2. 执行启动指令

SpringBoot概述

  • SpringBoot时由Pivotal团队提供的全新框架,其设计目的使用来简化Spring应用的初始环境搭建以及开发过程
  • Spring程序缺点
  • 配置繁琐
  • 依赖设置繁琐
  • SpringBoot程序优点
  • 自动配置
  • 起步依赖(简化依赖配置)
  • 辅助功能(内置服务器,...)

SpringBoot起步依赖

  • starter
  • SpringBoot中常见项目名称,定义了当前项目使用的所有项目坐标,以达到减少依赖配置的目的
  • parent
  • 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
  • spring-boot-starter-parent(2.5.0)与spring-boot-starter-parent(2.4.6)共计57出坐标版本不同
  • 实际开发
  • 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供
  • 如果坐标错误,在指定version(要小心版本冲突)

SpringBoot程序启动

  • 启动方式
@SpringBootApplication
public class Spring01QuickstartApplication {

    public static void main(String[] args) {
        SpringApplication.run(Spring01QuickstartApplication.class, args);
    }

}
  • SpringBoot在创建项目时,采用jar的打包方式
  • SpringBoot的引导类是项目的入口,运行main方法就可以启动项目
  • 使用maven依赖管理变更起步依赖项
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
  • Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已经全面切换为Jetty

基础配置

修改服务器端口

  • SpringBoot提供了多种属性配置方式
  • application.properties
server.port=80
  • application.yml
server:
  port: 80
  • application.yaml
server:
  port: 80
  • 自动提示功能消失解决方案
  • File ---> Project Structure ---> Facets --->Spring ---> Customize Spring Boot... ---> + --->在resources里选择要添加的文件
  • SpringBoot配置文件加载顺序(了解)
  • application.properties > application.yml > application.yaml

SpringBoot核心配置文件名为application

SpringBoot内置属性过多,且所有属性集中在一起修改,在使用时,通过提示键+关键字修改属性

yaml

  • YAML(YAML Ain't Markup Language),一种数据序列化格式
  • 优点:
  • 容易阅读
  • 容易与脚本语言交互
  • 以数据为核心,重数据轻格式
  • YAML文件扩展名
  • .yml(主流)
  • .yaml
  • yaml语法规则
  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)

表示注释

  • 数组数据在数据书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔
subject:
  - java
  - c
  - c++
  • yaml数据读取
  • 使用@Value读取单个数据,属性名引用方式:$
  • 封装全部数据到Environment对象
  • 自定义对象封装数据
  • 自定义对象封装数据警告解决方案
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

多环境启动

spring cloud黑马程序员课件 黑马springboot_jar

  • yaml格式(旧)
spring:
  profiles:          #启动指定环境
    active: pro
---    #--------------------------------------
server:
  port: 8080         #设置生产环境
#---------------------------------------------
spring:
  profiles: dev      #生产环境具体参数设定
---    #--------------------------------------
server:
  port: 8081         #设置开发环境
#---------------------------------------------
spring:
  profiles: pro      #开发环境具体参数设定
---    #--------------------------------------
server:
  port: 8082         #设置测试环境
#---------------------------------------------
spring:
  profiles: test     #测试环境具体参数设定
  • yaml格式(新)
server:
  port: 8080

spring:
  config:
    activate:
      on-profile: dev
  • properties文件多环境启动格式
  • 主启动配置文件application.properties
spring.profiles.active=pro
  • 环境分类配置文件application-pro.proerties
server.port=8080
  • 环境分类配置文件application-dev.proerties
server.port=8081
  • 环境分类配置文件application-test.proerties
server.port=8082

多环境启动命令格式

  • 带参数启动SpringBoot
java -jar spring_03_read_data-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev

java -jar spring_03_read_data-0.0.1-SNAPSHOT.jar --server.port=88

java -jar spring_03_read_data-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev --server.port=88
  • 参数加载优先级顺序

多环境开发控制

  1. Maven中设置多环境属性
<profiles>
    <profile>
        <id>env_dev</id>
        <properties>
            <profile.active>dev</profile.active>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>env_pro</id>
        <properties>
            <profile.active>pro</profile.active>
        </properties>
    </profile>
    <profile>
        <id>env_test</id>
        <properties>
            <profile.active>test</profile.active>
        </properties>
    </profile>
</profiles>
  1. SpringBoot中引用Maven属性
spring:
  profiles:
    active: ${profile.active}
---
server:
  port: 8080
#                   设置生产环境
spring:
  config:
    activate:
      on-profile: dev
---
server:
  port: 8081
#                   设置开发环境
spring:
  profiles: pro
---
server:
  port: 8082
#                   设置测试环境
spring:
  profiles: test
  1. 执行Maven打包指令
  2. 对资源文件开启对默认占位符的解析
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.2.0</version>
    <configuration>
        <encoding>utf-8</encoding>
        <useDefaultDelimiters>true</useDefaultDelimiters>
    </configuration>
</plugin>

配置文件分类

  1. SpringBoot中4级配置文件
  • 1级:file : config/application.yml
  • 2级:file : application.yml
  • 3级:classpath : config/application.yml
  • 4级:classpath : application.uml
  1. 作用:
  • 1级与2级留作系统打包后设置的通用属性
  • 3级与4级用于系统开发阶段设置通用属性

整合第三方技术

  • SpringBoot整合Spring(不存在)
  • SpringBoot整合SpringMVC(不存在)
  • SpringBoot整合Mybatis(主要)

SpringBoot整合MyBatis

  1. 创建新模块,选择Spring初始化,并配置模块相关基础配置信息
  2. 选择当前模块需要使用的技术集(MyBatis、MySQL)
  3. 设置数据源参数

注意事项:

SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区或在MySQL数据库端配置时区解决此问题

spring cloud黑马程序员课件 黑马springboot_jar_02

  1. 定义数据层接口与映射配置
  2. 测试类中注入dao接口,测试功能