我是靠谱客的博主 开心爆米花,最近开发中收集的这篇文章主要介绍【SSM学习】05-SpringBootSSM(B站黑马)学习笔记前言04SpringBoot注:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SSM(B站黑马)学习笔记

01-1-Spring概述
01-2-Spring IOC
01-3-Spring AOP
01-4-Spring 事务
02-SpringMVC
03-SSM整合
04-Maven高级
05-SpringBoot
06-MyBatisPlus


文章目录

  • SSM(B站黑马)学习笔记
  • 前言
  • 04SpringBoot
    • SpringBoot简介
      • 入门案例
        • SpringBoot开发入门程序
        • Spring程序与SpringBoot程序对比
        • 在Spring官网创建SpringBoot工程
        • SpringBoot程序快速启动
      • SpringBoot概述
      • 起步依赖
        • 起步依赖
        • 辅助功能——切换web服务器
    • 基础配置
      • 配置文件格式(3种)
      • yaml
        • yaml格式
        • yaml数据读取方式(3种)
      • 多环境开发
        • 多环境开发配置
        • 多环境jar包命令行启动参数设置
        • 多环境开发兼容问题(maven与springboot)
      • 配置文件分类
    • SpringBoot整合
      • SpringBoot整合JUnit
      • SpringBoot整合Mybatis
      • SpringBoot整合SSM
  • 注:


前言

SSM(B站黑马)学习笔记 04SpringBoot


04SpringBoot

SpringBoot简介

入门案例

以SpringMvc为例

  • 原生开发SpringMvc过程

SpringBoot开发入门程序



1.创建SpringBoot工程

初次新建要下载很久,将中央仓库换成阿里镜像仓库更快

2.直接开发controller(config的配置类都不用写了)

3.运行(不用配置Tomcat了,其内置了Tomcat直接运行Application启动类)

成功访问

  • 最简SpringBoot程序所包含的基础文件
  • Application类
  • pom.xml文件

Application类

这个类中的东西很简单,就在类上添加了一个 @SpringBootApplication 注解,而在主方法中就一行代码。我们在启动服务器时就是执行的该类中的主方法。

pom.xml配置

SpringBoot之所以能够减少如此多的配置,都是源于继承了父工程
我们程序之所以能够开发web工程,就是新建项目时勾选的Spring Web

Spring程序与SpringBoot程序对比

在Spring官网创建SpringBoot工程

idea只是工具,帮我们创建SpringBoot工程也是去官网创建的,所以idea创建要确保联网

1.打开Spring官网 https://spring.io/

跟idea里的一样

生成后会打成压缩包,其内容和idea创建的一模一样

SpringBoot程序快速启动

前后端分离合作开发存在的问题

我们和前端开发人员协同开发,而前端开发人员需要测试前端程序就需要后端开启服务器,这就受制于后端开发人员。为了摆脱这个受制,前端开发人员尝试着在自己电脑上安装 TomcatIdea ,在自己电脑上启动后端程序,这显然不现实。

我们后端可以将 SpringBoot 工程打成 jar 包,该 jar 包运行不依赖于 TomcatIdea 这些工具也可以正常运行,只是这个 jar 包在运行过程中连接和我们自己程序相同的 Mysql 数据库即可。这样就可以解决这个问题,如下图

注意:打jar包maven工程都可以,但不能使用java -jar运行。springboot工程jar包可以是因为依赖了插件,它不仅打包了jar包,还把要用的jar包也一起打了。简单来说就是jar包里还有jar包

1.打jar包 执行maven中的package命令

2.启动SpringBoot

在jar包所在文件目录运行cmd 输入java -jar jar包名(输入前几个字母按Tab自动补充)
Ctrl+C停止运行

测试

SpringBoot概述

  • SpringBoot 是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程

  • Spring程序缺点

    • 配置繁琐
    • 依赖设置繁琐
  • SpringBoo程序优点

    • 自动配置
    • 起步依赖(简化依赖配置)
    • 辅助功能(内置服务器,…)

起步依赖

起步依赖

我们使用 Spring Initializr 方式创建的 Maven 工程的的 pom.xml 配置文件中自动生成了很多包含 starter 的依赖,如下图

这些依赖就是起步依赖

探索父工程

从上面的文件中可以看到指定了一个父工程,我们进入到父工程,发现父工程中又指定了一个父工程,如下图所示

再进入到该父工程中,在该工程中我们可以看到配置内容结构如下图所示

上图中的 properties 标签中定义了各个技术软件依赖的版本,避免了我们在使用不同软件技术时考虑版本的兼容问题。在 properties 中我们找 servletmysql 的版本如下图

dependencyManagement 标签是进行依赖版本锁定,但是并没有导入对应的依赖;如果我们工程需要那个依赖只需要引入依赖的 groupidartifactId 不需要定义 version。选好springboot的版本,如果我们需要哪个依赖直接引用G A 即可,它帮我们匹配好了最佳兼容的V(版本),避免了依赖冲突

build 标签中也对插件的版本进行了锁定,如下图

看完了父工程中 pom.xml 的配置后不难理解我们工程的的依赖为什么都没有配置 version

探索依赖

在我们创建的工程中的 pom.xml 中配置了如下依赖

进入到该依赖,查看 pom.xml 的依赖会发现它引入了如下的依赖

里面的引入了 spring-webspring-webmvc 的依赖,这就是为什么我们的工程中没有依赖这两个包还能正常使用 springMVC 中的注解的原因。

而依赖 spring-boot-starter-tomcat ,从名字基本能确认内部依赖了 tomcat,所以我们的工程才能正常启动。

结论:以后需要使用技术,只需要引入该技术对应的起步依赖即可



辅助功能——切换web服务器

1.先排除tomcat服务器

2.更换jetty服务器

测试

基础配置

配置文件格式(3种)

  • SpringBoot提供了多种属性配置方式


application.properties文件

application.yml文件(主要写这种)
使用回车间隔分级,数据前要加空格

application.yaml文件 写法跟yml一样

补充:输入没有弹出提示解决
配置文件输入相关字符会弹出快捷输入提示,但当springboot未识别到就不会。识别成功文件前是绿叶logo

解决办法

yaml

yaml格式

yaml语法规则

  • 大小写敏感
  • 属性层级关系使用多行描述,每行结尾使用冒号结束
  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔符)
  • #表示注释
  • 核心规则:数据前面要加空格与冒号隔开

yaml数据读取方式(3种)



环境准备

读取属性
方法一:简单类型依赖注入@Value

方式二:使用Environment对象对读取
方式一如果读取属性很多的话,要写的@Value就太多了。自动注入Environment对象就可以加载所有的环境信息,将所有的yaml信息交给这个对象(注意是springframework包下)

方式三:使用实体类读取


多环境开发

多环境开发配置

以后在工作中,对于开发环境、测试环境、生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql ,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配置,将环境的配置改为线上环境的。

来回的修改配置会很麻烦,而 SpringBoot 给开发者提供了多环境的快捷配置,需要切换环境时只需要改一个配置即可。


环境准备

yaml设置多环境

补充:下图设置环境名称左边划线是过时写法,两种写法都可以看选择

application.properties设置多环境
注意文件夹命名

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

问题:当我们把程序打成jar包给测试,测试要换成测试环境,但我们在配置文件里已经写好了。

解决:通过命令启动更改配置
温馨提醒:
1.打jar包前建议执行clean指令再执行package打jar包指令,因为如果上一次的结果影响本次的操作会出现不必要的麻烦。

2.我们的配置文件中有可能写中文(注释),这种情况打包失败的,需要更改设置

打包

直接启动会发现用的配置文件设定端口

命令行切换配置
命令:java -jar spring.jar --spring.profiles.active=test(配置文件中环境名称)

存在问题:如果测试的82端口占用了,更改后无法正常启动

命令行切换多环境配置端口
命令:
java -jar spring.jar --spring.profiles.active=test --server.port=88(将test环境端口切换为88)
java -jar spring.jar --server.port=88(只切换端口)

参数加载优先级

之所以能够使用命令行更改配置是因为它的优先级比配置文件高,官网有优先级介绍,从上往下逐步提高
参考网址:https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.external-config

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

在maven和springboot中都可以配置多环境03Maven高级,如果maven配置开发环境为主,boot配置测试环境为主,但用谁的呢。解决这个问题我们要知道,最终boot工程不是在电脑上使用idea启动,而是使用jar包在服务器用命令行(java -jar)的方式启动。jar包又是maven执行package指令打包,所以maven里的多环境配置是起主导作用的,而boot里的多环境配置仅仅相当于maven打包过程中的工具应该听从maven的控制。

解决兼容问题就是让maven控版本,springboot加载maven中设置的版本





环境准备

1.application.yml读取pom.xml设置

注意,pom.xml中配置的属性只能在当前文件生效,要扩展范围需要配置插件

查看application.yml是否读取成功

配置文件分类

有这样的场景,我们开发完毕后需要测试人员进行测试,由于测试环境和开发环境的很多配置都不相同,所以测试人员在运行我们的工程时需要临时修改很多配置,如下

针对这种情况,SpringBoot 定义了配置文件不同放置的位置;而放在不同位置的优先级时不同。

环境准备

4级:classpath:applicattion.yml(直接放在resource包下)

3级:classpath:config/applicattion.yml (resource包下的config包下)
配置文件前的logo前面基础配置有解释

2级:file:applicattion.yml(打包后跟jar包同级目录下)

1级:file:config/applicattion.yml(打包后跟jar包同级目录下config包下)

上述1级和2级就能解决测试环境根据所需配置环境

注意:

SpringBoot 2.5.0版本存在一个bug,我们在使用这个版本时,1级需要在 jar 所在位置的 config 目录下创建一个任意名称的文件夹

SpringBoot整合

SpringBoot整合JUnit

SpringBoot整合JUnit
环境准备

测试
只用@SpringBootTest注解就能代替原先的两个注解

==注意:==这里的引导类所在包必须是测试类所在包及其子包。

例如:

* 引导类所在包是 com.itheima

* 测试类所在包是 com.itheima

如果不满足这个要求的话,就需要在使用 @SpringBootTest 注解时,使用 classes 属性指定引导类的字节码对象。如 @SpringBootTest(classes = Springboot07TestApplication.class)

SpringBoot整合Mybatis

springboot整合Mybatis需要配置的就两个

springboot整合Mybatis



环境准备
勾选Mybatis相关的起步依赖

1.配置数据源信息

测试
测试报错,说没有加载上BookDao这个bean。就是我们没有告知它dao写在哪里

就是spring整合mybatis定义映射配置没有告知

2.告知dao层接口
通过注解告知

测试

补充:
现在用的是默认内置数据源,可以更改为阿里巴巴的druid数据源

使用xml映射文件

注意:resources下创建包时一次性建包用 ’ / ’ 区分,Directory包用 ’ / ’ 区分,package包用 ’ . ’ 区分

xml映射文件跟接口放一起和在resources包下不是同一个目录要添加另外的配置,详细参考下方网址

参考:
springboot整合mybatis接口文件与映射文件的放置

springboot中配置mybatis别名该怎么写?

@Mapper和@MapperScan

起类型别名:原生写法是在mybatis.config中使用标签,springboot整合mybatis写在yml配置文件中。但是添加后可以正常运行但返回类型会报错,应该是idea的bug

解决办法,yml添加配置后输入全限定名运行一遍再把前面的删掉留Book就不会了(启动扫描yml文件才生效)

1.@Mapper注解

作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类

添加位置:接口类上面

@Mapper
public interface UserDAO {
//代码
}

如果想要每个接口都要变成实现类,那么需要在每个接口类上加上@Mapper注解,比较麻烦,解决这个问题用@MapperScan

2.@MapperScan注解

作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类

添加位置:是在Springboot启动类上面添加,

@SpringBootApplication
@MapperScan("com.gdit.dao")
public class SpringbootMybatisDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootMybatisDemoApplication.class, args);
}
}

添加@MapperScan(“com.gdit.dao”)注解以后,com.gdit.dao包下面的接口类,在编译之后都会生成相应的实现类

多个包可采用数组的形式,支持通配符

总结:springboot整合mybatis只需三步,导入起步依赖->配置数据源信息->告知dao层接口

SpringBoot整合SSM

1.创建springboot工程

导入上节ssm整合的表现层、业务层、数据层等代码 删掉配置类

2.整合Mybatis
更改默认数据源->添加@Mapper注解->配置数据源信息

3.测试

4.前后端联调
引入前端功能页面,放在resources下static包下

如果第一次运行出错可以执行clean命令后再运行一遍


注:

该内容是根据B站黑马程序员学习时所记,相关资料可在B站查询:黑马程序员2022最新SSM框架教程_Spring+SpringMVC+Maven高级+SpringBoot+MyBatisPlus企业实用开发技术

最后

以上就是开心爆米花为你收集整理的【SSM学习】05-SpringBootSSM(B站黑马)学习笔记前言04SpringBoot注:的全部内容,希望文章能够帮你解决【SSM学习】05-SpringBootSSM(B站黑马)学习笔记前言04SpringBoot注:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部