发布时间:2023-04-20 文章分类:电脑百科 投稿人:李佳 字号: 默认 | | 超大 打印

目录

一、什么是springBoot?为什么要学springBoot

springBoot的优点:(5点)

优点1:快速集成框架

优点2:内置了Tomcat容器

优点3:快速部署项目

优点4:少配置,多注解

 优点5:支持更多的监控指标

SpringBoot的缺点

二、springBoot项目的创建

第一步:新建项目

第二步:添加一些框架支持

第三步:查看项目创建的状态 

 第四步:运行项目

SpringBoot的项目结构

启动类和其他类的关系

三、SpringBoot的配置文件

3.1配置文件的作用

存放重要信息

降低代码的耦合度

3.2配置文件的格式

配置文件的分类

配置文件的格式

springBoot配置的规则(格式?冲突?)

properies配置文件的语法

如何读取配置文件的内容

properties缺点分析

yml配置文件

yml配置文件说明

yml的特点:

yml的语法

yml对于单、双引号的问题

yml配置对象

yml配置集合

properties和yml有什么区别(重要)

四、指定文件读取

@PropertySource读取配置文件

一、什么是springBoot?为什么要学springBoot

在之前学习spring的时候,我们了解到:spring框架的诞生可以简化Java程序的开发。

springBoot翻译一下,就是spring框架的脚手架

springBoot的优点:(5点)

优点1:快速集成框架

springBoot提供了各种启动依赖的功能,用于快速集成各种框架;

优点2:内置了Tomcat容器

内置了运行容器,无需额外配置Tomcat等等的Web容器

SpringBoot内部内置了一个被打成jar包的Tomcat容器,当需要使用的时候就会调用它的API。

优点3:快速部署项目

       不需要外部的容器即可启动并且运行项目,springBoot项目启动的时候只需要编写一个main方法,然后运行这个main方法。

       之前的Servlet的时代,还需要安装smart Tomcat的插件。繁琐的的集成、部署操作,才可以运行项目。

优点4:少配置,多注解

springBoot不需要太多的配置文件,只需要在连接redis或者mysql的时候配置一下数据源即可。

 优点5:支持更多的监控指标

 通过这些指标,可以比较好地了解项目的运行情况。(例如有哪些bean等等)

SpringBoot的缺点

版本更新太快,并且不同的版本之间模块区别比较大。

【springBoot篇1】概念、创建和运行

二、springBoot项目的创建

如果idea编辑器是专业版的,那么点击左上角,直接选择新建spring initializr

第一步:新建项目

【springBoot篇1】概念、创建和运行

第二步:添加一些框架支持

【springBoot篇1】概念、创建和运行

第三步:查看项目创建的状态 

看到一个启动类,说明已经创建成功了

【springBoot篇1】概念、创建和运行

 第四步:运行项目

运行启动类的main方法,如果看到输出了spring的标志,说明运行成功了。

【springBoot篇1】概念、创建和运行

SpringBoot的项目结构

【springBoot篇1】概念、创建和运行

启动类和其他类的关系

      其他的类一定要和启动类同一级的目录下面。(也就是和启动类要在同一个包下面,或者位于启动类的子包下面),这样才可以扫描到其他的类。

三、SpringBoot的配置文件

3.1配置文件的作用

存放重要信息

整个项目的所有重要的数据都是写在配置文件当中的,例如:

数据库的连接信息、项目的启动端口、第三方系统的日志信息等等;

如果没有配置文件,那么项目就无法连接数据库

降低代码的耦合度

对于数据库连接等等的信息,不应当写在Java代码当中,应当写在配置文件当中。

场景1:

同时,对于配置文件当中的内容,也可以方便开发人员进行修改

(如果写在.java文件当中,那么对于编译之后的.class文件,它是只读文件无法修改

场景2:

方便运维人员查看项目需要部署的服务器、数据库连接等等。

3.2配置文件的格式

配置文件的分类

1、 系统的配置文件:比如数据库连接字符串、比如日志的相关配置等等,这些是系统定义好的。

2、用户自定义的配置文件。例如用户想要读取的一些文件之类

配置文件的格式

一般都是两种,一种是.properties,另外一种是.yml

但是,无论哪一种格式,都必须要命名为application.yml或者application.properties

因为springBoot在启动的时候默认只读取名称为application的配置文件。

【springBoot篇1】概念、创建和运行

springBoot配置的规则(格式?冲突?)

       规则1:一个项目当中可以存在两种配置文件(一种是properies,另外一种是yml),但是不建议同时出现两种

       规则2:如果.properties.yml的配置文件内容冲突了, 那么会怎样处理?优先读取.properties的配置文件。

properies配置文件的语法

properies是以键值对的形式配置的。

【springBoot篇1】概念、创建和运行

同时,也可以在properies当中自定义配置文件的内容

【springBoot篇1】概念、创建和运行

如何读取配置文件的内容

使用@Value注解来读取配置文件当中的内容:server.port属性跟着的值

/**
 * @author 25043
 */
@Component
public class ReadProperties {
    /**
     * value当中的值为配置文件当中
     * server.port的值
     * 一定要加大括号
     */
    @Value("${server.port}")
    private String port;
    @PostConstruct
    public void postConstruct(){
        System.out.println("yml当中的值:"+port);
    }
}

【springBoot篇1】概念、创建和运行

properties缺点分析

对于一些key,它会有很多冗余的内容:

当多个key存在相同的部分的时候,需要一一把相同的部分列举出来,比较冗余。

【springBoot篇1】概念、创建和运行

yml配置文件

yml配置文件说明

yml是YAML的缩写,它的全称是:"Yet another Markup Language",yml是一个可读性高,易于理解,用来表达数据序列化的格式。

最大的优势:可以跨语言。

yml的特点:

   1、写法简单、可读性高;

   2、支持更多的数据类型(;

   3、支持跨语言的使用:java/python

【springBoot篇1】概念、创建和运行

yml的语法

这个也是按照key-value的形式来进行存储的。

但是它的写法相比于properties更加地简洁。

当多个key存在重复的元素的时候,可以把这些key相同的部分都给提取出来。

【springBoot篇1】概念、创建和运行

 ​​​​​​​​​​properties:【springBoot篇1】概念、创建和运行

yml对于单、双引号的问题

【springBoot篇1】概念、创建和运行

yml配置对象

多行的写法:

#对象写法1
student :
  id : 1
  name : 张三
  age: 22

单行的写法:

#对象写法2
   student2 : {id : 2, name : 李四, age : 20}

获取对象:

第一步:在properties当中存放一个对象:

【springBoot篇1】概念、创建和运行

第二步:新建一个和这个对象属性一模一样的实体类

【springBoot篇1】概念、创建和运行

第三步:把这个实体类注入到Spring容器当中(5大类注解) 

【springBoot篇1】概念、创建和运行

第四步:从配置文件当中获取这个对象  

【springBoot篇1】概念、创建和运行

第五步:从通过属性注入获取对象

【springBoot篇1】概念、创建和运行

yml配置集合

配置文件:

#dbtypes对应一个实体类
#name对应的是集合
dbtypes : { name: [ mysql, sqlServer,db2 ] }

注入集合: 

【springBoot篇1】概念、创建和运行 获取bean:

【springBoot篇1】概念、创建和运行

properties和yml有什么区别(重要)

区别1:properties仅仅支持Java项目,但是yml支持包括Java在内的多种语言(例如python);

区别2:properties的key写起来比较冗余,不像yml那样简易。(yml支持层级,层级之间采用缩进的方式)

区别3:yml支持更多的数据类型(string,object,list)

四、指定文件读取

@PropertySource读取配置文件

这个注解可以作用在类的上面,同时指定读取哪一个配置文件

如果没有这个注解,那么@Value注解默认读取的是application.properties文件当中的内容。