SSM框架(六):SpringBoot技术及整合SSM

文章目录

  • 一、概述
    • 1.1 简介
    • 1.2 起步依赖
    • 1.3 入门案例
    • 1.4 快速启动
  • 二、基础配置
    • 2.1 三种配置文件方式
    • 2.2 yaml文件格式
    • 2.3 yaml读取数据方式(3种)
  • 三、多环境开发
    • 3.1 yml文件-多环境开发
    • 3.2 properties文件-多环境开发
    • 3.3 多环境命令行启动参数设置
    • 3.4 多环境开发兼容问题(maven与boot)
    • 3.5 配置文件分级
  • 四、基于SpringBoot整合SSM
    • 4.1 整合Junit
    • 4.2 整合Mybatis
    • 4.3 案例


一、概述

1.1 简介

SSM框架(六):SpringBoot技术及整合SSM_第1张图片

1.2 起步依赖

SSM框架(六):SpringBoot技术及整合SSM_第2张图片
SSM框架(六):SpringBoot技术及整合SSM_第3张图片

SSM框架(六):SpringBoot技术及整合SSM_第4张图片

1.3 入门案例

【springboot】Spring 官方抛弃了 Java 8!新idea如何创建java8项目

SSM框架(六):SpringBoot技术及整合SSM_第5张图片
SSM框架(六):SpringBoot技术及整合SSM_第6张图片

SSM框架(六):SpringBoot技术及整合SSM_第7张图片

SSM框架(六):SpringBoot技术及整合SSM_第8张图片

1.4 快速启动

后端人员可以将项目打jar包,交给前端人员,通过dos指令操作运行后端程序和服务器,方便前端人员设计界面,而不用安装idea

注意:下图红色部分1必须写,以保证打包时具有springboot的Maven插件
SSM框架(六):SpringBoot技术及整合SSM_第9张图片

二、基础配置

2.1 三种配置文件方式

配置文件建立在src/main/resources目录下。

SpringBoot加载配置文件的顺序:application.propertirs > application.yml > application.yaml

SSM框架(六):SpringBoot技术及整合SSM_第10张图片

如果自己建的配置文件没有自动提示功能,可通过下述方法解决:
SSM框架(六):SpringBoot技术及整合SSM_第11张图片

2.2 yaml文件格式

SSM框架(六):SpringBoot技术及整合SSM_第12张图片

SSM框架(六):SpringBoot技术及整合SSM_第13张图片
SSM框架(六):SpringBoot技术及整合SSM_第14张图片

2.3 yaml读取数据方式(3种)

application.yaml

lesson: SpringBoot

server:
  port: 80

enterprise:
  name: itcast
  age: 16
  tel: 15922266
  subject:
    - Java
    - 前端
    - 大数据

Enterprise.class

package com.itheima.domain;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Arrays;

//封装yaml对象格式数据必须先声明当前实体类受Spring管控
@Component
//使用@ConfigurationProperties注解定义当前实体类读取配置属性信息,通过prefix属性设置读取哪个数据
@ConfigurationProperties(prefix = "enterprise")
public class Enterprise {
    private String name;
    private Integer age;
    private String tel;
    private String[] subject;

    @Override
    public String toString() {
        return "Enterprise{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", tel='" + tel + '\'' +
                ", subject=" + Arrays.toString(subject) +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public String[] getSubject() {
        return subject;
    }

    public void setSubject(String[] subject) {
        this.subject = subject;
    }
}

BookController.class

package com.itheima.controller;

import com.itheima.domain.Enterprise;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/books")
public class BookController {
    @Value("${lesson}")
    private String lesson;
    @Value("${server.port}")
    private String port;
    @Value("${enterprise.subject[0]}")
    private String subject_0;

    @Autowired
    private Environment environment;

    @Autowired
    private Enterprise enterprise;

    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println("-----第一种方式:@Value直接读取-------");
        System.out.println(lesson);
        System.out.println(port);
        System.out.println(subject_0);

        System.out.println("-----第二种方式:Envrionment封装后读取-------");
        System.out.println(environment.getProperty("enterprise.subject[1]"));

        System.out.println("-----第三种方式:自定义实体类封装属性-------");
        System.out.println(enterprise);
        return "hello , spring boot!";
    }

}

注意:自定义对象封装数据警告解决方案

        <!-- 自定义对象封装数据警告解决方案 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

三、多环境开发

3.1 yml文件-多环境开发

#设置启用的环境
spring:
  profiles:
    active: test

---
#开发
spring:
  config:
    activate:
      on-profile: dev
server:
  port: 80
---
#生产
spring:
  profiles: pro
server:
  port: 81
---
#测试
spring:
  profiles: test
server:
  port: 82
---

3.2 properties文件-多环境开发

SSM框架(六):SpringBoot技术及整合SSM_第15张图片

3.3 多环境命令行启动参数设置

  1. 编写yml文件
  2. 因为带有中文,所以要设置字符集编码
  3. 打包前clean一下
  4. 关闭测试(可选)
  5. 打包package
  6. 去jar包的目录下启动cmd,通过命令行配置启动环境:java -jar 包名 --spring.profile.active=环境名
    SSM框架(六):SpringBoot技术及整合SSM_第16张图片
    也可以通过命令行改变端口号
    SSM框架(六):SpringBoot技术及整合SSM_第17张图片

3.4 多环境开发兼容问题(maven与boot)

SSM框架(六):SpringBoot技术及整合SSM_第18张图片

SSM框架(六):SpringBoot技术及整合SSM_第19张图片
SSM框架(六):SpringBoot技术及整合SSM_第20张图片

SSM框架(六):SpringBoot技术及整合SSM_第21张图片

3.5 配置文件分级

SSM框架(六):SpringBoot技术及整合SSM_第22张图片
高级别配置文件会覆盖低级别配置文件,解释:

  1. 当我们在开发时在第4级别配置文件编写;
  2. 当项目提交时,配置第3级别文件;
  3. 然后将项目打包;
  4. 如果需要临时修改配置文件,无需重新打包,直接在jar下配置第1或2级别配置文件,可完成灵活配置

这里的,file一般指的是打包后的目录,即;项目名/target;classpath一般指的是类目录,即:项目名src/main/resources/

SSM框架(六):SpringBoot技术及整合SSM_第23张图片

四、基于SpringBoot整合SSM

4.1 整合Junit

SSM框架(六):SpringBoot技术及整合SSM_第24张图片
SSM框架(六):SpringBoot技术及整合SSM_第25张图片

4.2 整合Mybatis

SSM框架(六):SpringBoot技术及整合SSM_第26张图片
SSM框架(六):SpringBoot技术及整合SSM_第27张图片
SSM框架(六):SpringBoot技术及整合SSM_第28张图片
SSM框架(六):SpringBoot技术及整合SSM_第29张图片
SSM框架(六):SpringBoot技术及整合SSM_第30张图片

4.3 案例

SSM框架(六):SpringBoot技术及整合SSM_第31张图片

你可能感兴趣的:(Spring,SSM,SpringBoot,spring,boot,后端,java)