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

文章目录

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

一、概述

1.1 简介

1.2 起步依赖


1.3 入门案例

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


1.4 快速启动

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

注意:下图红色部分1必须写,以保证打包时具有springboot的Maven插件

二、基础配置

2.1 三种配置文件方式

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

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

如果自己建的配置文件没有自动提示功能,可通过下述方法解决:

2.2 yaml文件格式


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

application.yaml

java 复制代码
lesson: SpringBoot

server:
  port: 80

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

Enterprise.class

java 复制代码
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

java 复制代码
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!";
    }

}

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

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

三、多环境开发

3.1 yml文件-多环境开发

java 复制代码
#设置启用的环境
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文件-多环境开发

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

  1. 编写yml文件
  2. 因为带有中文,所以要设置字符集编码
  3. 打包前clean一下
  4. 关闭测试(可选)
  5. 打包package
  6. 去jar包的目录下启动cmd,通过命令行配置启动环境:java -jar 包名 --spring.profile.active=环境名

    也可以通过命令行改变端口号

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


3.5 配置文件分级

高级别配置文件会覆盖低级别配置文件,解释:

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

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

四、基于SpringBoot整合SSM

4.1 整合Junit


4.2 整合Mybatis





4.3 案例

相关推荐
chuanauc3 分钟前
Kubernets K8s 学习
java·学习·kubernetes
一头生产的驴19 分钟前
java整合itext pdf实现自定义PDF文件格式导出
java·spring boot·pdf·itextpdf
YuTaoShao26 分钟前
【LeetCode 热题 100】73. 矩阵置零——(解法二)空间复杂度 O(1)
java·算法·leetcode·矩阵
zzywxc78729 分钟前
AI 正在深度重构软件开发的底层逻辑和全生命周期,从技术演进、流程重构和未来趋势三个维度进行系统性分析
java·大数据·开发语言·人工智能·spring
YuTaoShao3 小时前
【LeetCode 热题 100】56. 合并区间——排序+遍历
java·算法·leetcode·职场和发展
程序员张33 小时前
SpringBoot计时一次请求耗时
java·spring boot·后端
llwszx6 小时前
深入理解Java锁原理(一):偏向锁的设计原理与性能优化
java·spring··偏向锁
云泽野6 小时前
【Java|集合类】list遍历的6种方式
java·python·list
二进制person7 小时前
Java SE--方法的使用
java·开发语言·算法
小阳拱白菜8 小时前
java异常学习
java