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 案例

相关推荐
为将者,自当识天晓地。18 分钟前
c++多线程
java·开发语言
daqinzl26 分钟前
java获取机器ip、mac
java·mac·ip
激流丶42 分钟前
【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
java·大数据·kafka·topic
Themberfue1 小时前
Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized
java·开发语言·线程·多线程·synchronized·
让学习成为一种生活方式1 小时前
R包下载太慢安装中止的解决策略-R语言003
java·数据库·r语言
晨曦_子画1 小时前
编程语言之战:AI 之后的 Kotlin 与 Java
android·java·开发语言·人工智能·kotlin
假装我不帅1 小时前
asp.net framework从webform开始创建mvc项目
后端·asp.net·mvc
南宫生2 小时前
贪心算法习题其三【力扣】【算法学习day.20】
java·数据结构·学习·算法·leetcode·贪心算法
神仙别闹2 小时前
基于ASP.NET+SQL Server实现简单小说网站(包括PC版本和移动版本)
后端·asp.net