【SpringBoot学习】01基础篇

SpringBoot(B站黑马)学习笔记

01基础篇
02-1运维实用篇(打包与运行、多环境配置、日志)
02-2开发实用篇(热部署、配置、NoSQL、整合第三方技术)
03SpringCache
04SpringSecurity



前言

SpringBoot(B站黑马)学习笔记 01基础篇


01基础篇

注:基础篇在SSM中已经学习了一部分,以下是在此之上的完善补充。相关源码也在SSM章节中的文件夹

基础篇学习目标:

  • 能够创建SpringBoot工程
  • 基于SpringBoot实现ssm整合

SpringBoot简介

SpringBoot工程创建

以SpringMvc为例

  • 原生开发SpringMvc过程

原生开发SpringMvc需要配置许多的配置文件才能就行开发,springboot帮我们简化了几乎所有的配置。下面就来详细介绍。

idea联网创建版



1.创建SpringBoot工程

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

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

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

成功访问

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

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

pom.xml配置

SpringBoot之所以能够减少如此多的配置,都是源于继承了父工程

我们程序之所以能够开发web工程,就是新建项目时勾选的Spring Web

Spring官网创建版

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

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

跟idea里的一样

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

阿里云创建版

使用官网https://start.spring.io/ 创建springboot有一大痛点,就是该网站是国外的,访问速度可能很慢有时连接不上。为了解决这一问题我们可以通过阿里云https://start.aliyun.com创建,这个速度相当快 几乎不需要等

1.更换idea创建网址

剩下的都一样

idea小技巧——在Idea中隐藏指定文件/文件夹

springboot工程创建后会发现出现很多未知的文件,我们用不上,看着也占位置。解决这个问题有两种方式,1.直接delete删除(对项目足够了解,否则容易出问题)。2.使用 idea的设置隐藏

使用idea设置隐藏

找到
1.File -> Settings
2.Editor -> File Types -> Ignored Files and Folders
3.输入要隐藏的名称,支持 * 通配符
4.确认

注:不同版本的idea看到的界面不同,注意观察

SpringBoot概述

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

  • Spring程序缺点

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

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

Spring程序与SpringBoot程序对比

起步依赖

起步依赖

我们使用 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服务器

测试

基础配置

idea小技巧——复制工程

场景:我们在学习过程中会创建很多工程,学习一个新内容想要用前一个工程的内容就要重新创建工程然后一个个复制,太麻烦了。整个文件改名复制又会存在原始工程的痕迹影响开发。

原则:

  • 保留工程基础结构
  • 抹除原始工程痕迹

比如:我们想要一个工程作为统一的模板,以后都用这个模板的内容新建工程

1.拿入门案例举例 先复制一个副本作为模板

2.打开模板,将多余内容删除只留下src和pom.xml

3.修改pom.xml

将其名称修改成文件夹名称 就是工程的项目名称 (注意:小心不要改到父工程的)

至此我们的模板就新建好了

利用模板重复上面的操作 就能得到一个新工程

在idea中打开新工程(导入模块也行,直接打开也行 看个人需要)

打开工程

打开后会发现两个问题:

问题一:maven模块名称用的还是原始的,原因是我们没有修改,标签内的名称决定它的maven模块名称。修改成项目名称也行,直接删除也行。直接删除就使用项目名称作为maven模块名称。

当然创建模块的时候直接删除也行 标签也行,目前来说这两个标签无作用

问题二:启动类的名称用到也是原始的。直接Rename就行

右上角启动有的话也顺便修改

小细节:模板文件统一命名Application就不用修改这里了

注意:上述只是用于模板创建,如果很多工程都用到同样的起始内容就适用于。如果只是复制单个工程就没必要创建模板了,直接复制要复制的工程删除多余文件保留src和pom.xml文件,然后修改pom.xml文件就行.

总结:

  • 1.在工作空间中复制对应的工程,并修改工程名称
  • 2.删除与Idea相关配置文件,仅保留src目录与pom.xml文件
  • 3.修改pom.xml文件中的与新工程/模块名相同(注意:小心不要改到父工程的)
  • 4.删除name标签(可选)
  • 5.保留备份工程供后期使用(可选)

配置文件格式(3种)

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


application.properties文件

application.yml文件(主要写这种)

使用回车间隔分级,数据前要加空格

application.yaml文件 写法跟yml一样

补充:输入没有弹出提示解决

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

解决办法

yaml

yaml格式

yaml语法规则

  • 大小写敏感

  • 属性层级关系使用多行描述,每行结尾使用冒号结束

  • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)

  • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔符)

  • #表示注释

  • 核心规则:数据前面要加空格与冒号隔开

yaml数据读取方式(3种)



环境准备

读取属性

方法一:简单类型依赖注入@Value

方式二:使用Environment对象对读取

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

方式三:使用实体类读取


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层接口

通过注解告知

测试

补充:

现在用的是默认内置Hikari数据源,可以更改为阿里巴巴的druid数据源。druid也有专门整合springboot的在之后介绍

使用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工程

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

3.整合Mybatis

更改默认数据源->添加@Mapper注解->配置数据源信息

4.测试

5.前后端联调

引入前端功能页面,放在resources下static包下

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

SpringBoot整合MyBatisPlus

05MyBatisPlus

SpringBoot整合Druid

druid和druid-spring-boot-starter的区别

  • 作用是一样的,都是连接池提供连接,里面的配置参数都是一样的
  • druid-spring-boot-starter只是在druid基础上进行了一次封装,专门用来整合springboot项目

1.新建工程,选择起步依赖

由于idea没有收录druid的起步依赖所以新建后手动导入springboot整合druid的起步依赖

2.导入springboot整合druid的起步依赖

maven中央仓库搜索druid,选择专门整合springboot的。一般选择较多人使用的

3.配置数据源信息,类型改为使用druid的。不然用的还得默认数据源

两种配法

第一种:通用配法

通用配法不是正规的整合型配法,也能用

第二种:整合型配法

这是druid整合以后专用的配置了,不可能其它数据源用druid: 这个名称了。 两种配法都能使用,推荐下面的

4.测试

其实就算不用前面两种配发也是使用alibaba.druid数据源,因为我们把依赖引进去后springboot就自动配置了。只有我们把依赖整个去掉就会使用默认内置数据源Kikari


注:

该内容是根据B站黑马程序员学习时所记,相关资料可在B站查询:黑马程序员SpringBoot2全套视频教程,springboot零基础到项目实战(spring boot2完整版)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值