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>
        

多环境启动

  • 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
      

多环境启动命令格式

多环境开发控制

  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>
    
  2. 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
    
  3. 执行Maven打包指令

  4. 对资源文件开启对默认占位符的解析

    <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
  2. 作用:
    • 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数据库端配置时区解决此问题

  4. 定义数据层接口与映射配置

  5. 测试类中注入dao接口,测试功能