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 简介

在这里插入图片描述

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

lesson: SpringBootserver:port: 80enterprise:name: itcastage: 16tel: 15922266subject:- 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;@Overridepublic 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;@Autowiredprivate Environment environment;@Autowiredprivate 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文件-多环境开发

在这里插入图片描述

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/208861.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年腾讯云双12优惠活动整理汇总

2023年双12腾讯云推出了年末感恩回馈活动&#xff0c;年度爆款2核2G4M云服务器118元/年&#xff0c;新老用户同享&#xff0c;还可领取总面值2000元代金券&#xff0c;老用户服务器续费4折起。本文为大家整理汇总腾讯云双12优惠活动。 活动地址&#xff1a; 点此直达腾讯云双1…

JOSEF 快速中间继电器 KZJ-4H-L DC220V 导轨安装

快速中间继电器KZJ-4H-LDC220V导轨安装导轨安装是广泛用于电力系统&#xff0c;能够断货开或开通大负载&#xff0c;并且具有较强的断弧能力&#xff0c;适用于交流50/60Hz。电压24380V,直流电压24280V自动控制电路中以增加保护和控制回路的触点数量与触点容量。 KZJ系列快速中…

“B2B+OMS方案”,赋能家电巨头构建BC订单一体化能力,促进业务增长|徐礼昭

某国际知名家电电器品牌&#xff0c;年营收超过5000亿元。该电器企业其整体业务分三大类&#xff1a;线上线下B2B2C业务、线下B2B业务以及DTC零售业务。 随着业务的发展&#xff0c;该电器品牌对2B业务及DTC业务的数字化系统能力支撑需要更加全面和立体&#xff0c;以适应业务…

【Matlab】如何快速入门一项新技能-以Matlab/Simulink入门为例

目录 1. 引言 2. 背景 3. 快速学习并完成开发 3.1 了解需求&#xff0c;知道要干什么 3.2 了解Matlab/Simulink基本功能 第一步&#xff0c;查看Matlab的中文网站中文网站https://www.ilovematlab.cn/resources/对Matlab/Simulink有了一个初步认识。 3.3 实现一个最简单…

技术阅读周刊第第8️⃣期

技术阅读周刊&#xff0c;每周更新。 历史更新 20231103&#xff1a;第四期20231107&#xff1a;第五期20231117&#xff1a;第六期20231124&#xff1a;第七期 Prometheus vs. VictoriaMetrics (VM) | Last9 URL: https://last9.io/blog/prometheus-vs-victoriametrics/?refd…

msyql迁移到mongodb

关系型数据库迁移到mongodb的理由 高并发需求&#xff0c;关系型数据库不容易扩展 快速迭代 灵活的json模式 大数据量需求 应用迁移难度&#xff1a; 关系型到关系 oracle-》mysql oracle -》 postgresql 关系到文档- oracle -》 mongodb 需要考虑&#xff1a; 总体架构&#…

【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷14

单选题 1、下列现象中有化学变化发生的是 A、蜡烛融化 B、冰块融化 C、电磁炉烧开水 D、铁生锈 答案&#xff1a;D 2、把左边的图形用剪刀剪开&#xff0c;拼成右边的正方形&#xff0c;至少剪几刀 A、1 B、2 C、3 D、4 答案&#xff1a;B 3、能够检验土壤中有沙和粘…

Vue---Echarts

项目需要用echarts来做数据展示&#xff0c;现记录vue3引入并使用echarts的过程。 1. 使用步骤 安装 ECharts&#xff1a;使用 npm 或 yarn 等包管理工具安装 ECharts。 npm install echarts 在 Vue 组件中引入 ECharts&#xff1a;在需要使用图表的 Vue 组件中&#xff0c;引入…

【Vulnhub 靶场】【HackathonCTF: 2】【简单】【20210620】

1、环境介绍 靶场介绍&#xff1a;https://www.vulnhub.com/entry/hackathonctf-2,714/ 靶场下载&#xff1a;https://download.vulnhub.com/hackathonctf/Hackathon2.zip 靶场难度&#xff1a;简单 发布日期&#xff1a;2021年06月20日 文件大小&#xff1a;2.6 GB 靶场作者&…

VS安装QT VS Tools编译无法通过

场景&#xff1a; 项目拷贝到虚拟机内部后&#xff0c;配置好相关环境后无法编译&#xff0c;安装QT VS Tools后依旧无法编译&#xff0c;查找资料网上说的是QT工具版本不一致导致的&#xff0c;但反复试了几个版本后依旧无法编译通过。错误信息如下&#xff1a; C:\Users\Ad…

奇葩问题:arp缓存、ip地址冲突(实际是ip地址被占用导致arp缓存出现问题)

文章目录 今天遇到个奇葩的问题 今天遇到个奇葩的问题 今天遇到个奇葩的问题&#xff0c;我把我们192.168.1.116的盒子ip改成192.168.2.116后&#xff0c;再改回来&#xff0c;发现我们盒子的http服务始终无法访问&#xff0c;用Advanced IP Scanner扫描一下&#xff0c;发现就…

【Qt开发流程】之自定义语法高亮和使用HTML语法

描述 语法高亮&#xff08;Syntax Highlighting&#xff09;是一种在编辑器中突出显示代码语法元素的技术&#xff0c;使其更易于阅读和理解。 Qt提供了一个功能齐全的语法高亮框架&#xff0c;支持多种语言和格式&#xff0c;可以自定义颜色和样式。 对于使用Qt的开发人员来说…

【论文 | 联邦学习】 | Towards Personalized Federated Learning 走向个性化的联邦学习

Towards Personalized Federated Learning 标题&#xff1a;Towards Personalized Federated Learning 收录于&#xff1a;IEEE Transactions on Neural Networks and Learning Systems (Mar 28, 2022) 作者单位&#xff1a;NTU&#xff0c;Alibaba Group&#xff0c;SDU&…

RPC和REST对比

RPC和REST对比 参考学习 RPC 和 REST 之间有什么区别&#xff1f; 当我们对比RPC和REST时&#xff0c;其实是在对比RPC风格的API和REST风格的API&#xff0c;后者通常成为RESTful API。 远程过程调用&#xff08;RPC&#xff09;和 REST 是 API 设计中的两种架构风格。API …

【Linux】第二十五站:深入理解文件系统

文章目录 一、前言二、认识硬件----磁盘1.基本介绍2.磁盘的存储构成3.磁盘的逻辑结构4.回归到硬件 三、文件系统1.划分2.Block group(1)Data blocks(2)inode Table(3)Block Bitmap(4)inode Bitmap(5)Group Descriptor Table(GDT)(6)Super Block 3.总结4.一些其他问题5.如何理解…

Linux 命令stat

命令作用 stat命令用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。 查看的信息内容: File 显示文件名 Size 显示文件大小 Blocks 文件使用的数据块总数 IO Block IO块大小 regular file 文件类型&#xff08;常规文件&#xff09; Device …

解决:IDEA的debug模式只有第一次能拦截请求进行debug,后续所有请求全部失效

解决&#xff1a;IDEA的debug模式只有第一次能拦截请求进行debug&#xff0c;后续所有请求全部失效 一问题描述&#xff1a;IDEA的debug模式只有第一次能拦截请求进行debug&#xff0c;后续所有请求全部失效二问题原因&#xff1a;对IDEA的debug功能不熟悉或者理解有偏差三解决…

纯cpp如何模拟qt的信号与槽

纯cpp如何模拟qt的信号与槽 我之前是如何使用bind的?一.demo示例二.简单来讲,c自带的bind与function函数,如何实现类似信号与槽的机制1. 简单语法2. function与bind联动尝试1尝试2真正实现流程图 自我反思 我之前是如何使用bind的? 一.demo示例 using MsgHander std::funct…

【C++】C++11

一、C11 简介 C11 - cppreference.com 在 2003 年 C 标准委员会曾经提交了一份技术勘误表&#xff08;简称TC1&#xff09;&#xff0c;使得 C03 这个名字已经取代了 C98 称为 C11 之前的最新 C 标准名称。不过由于 C03&#xff08;TC1&#xff09;主要是对 C98 标准中的漏洞进…

QT中的 容器(container)-大全

一、介绍 Qt库提供了一套通用的基于模板的容器类&#xff0c;可以用这些类存储指定类型的项。比如&#xff0c;你需要一个大小可变的QString的数组&#xff0c;则使用QVector<QString>。 这些容器类比STL&#xff08;C标准模板库&#xff09;容器设计得更轻量、更安全并…