目录
一、什么是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项目的创建
如果idea编辑器是专业版的,那么点击左上角,直接选择新建spring initializr。
第一步:新建项目
第二步:添加一些框架支持
第三步:查看项目创建的状态
看到一个启动类,说明已经创建成功了
第四步:运行项目
运行启动类的main方法,如果看到输出了spring的标志,说明运行成功了。
SpringBoot的项目结构
启动类和其他类的关系
其他的类一定要和启动类在同一级的目录下面。(也就是和启动类要在同一个包下面,或者位于启动类的子包下面),这样才可以扫描到其他的类。
三、SpringBoot的配置文件
3.1配置文件的作用
存放重要信息
整个项目的所有重要的数据都是写在配置文件当中的,例如:
数据库的连接信息、项目的启动端口、第三方系统的日志信息等等;
如果没有配置文件,那么项目就无法连接数据库。
降低代码的耦合度
对于数据库连接等等的信息,不应当写在Java代码当中,应当写在配置文件当中。
场景1:
同时,对于配置文件当中的内容,也可以方便开发人员进行修改。
(如果写在.java文件当中,那么对于编译之后的.class文件,它是只读文件,无法修改)
场景2:
方便运维人员查看项目需要部署的服务器、数据库连接等等。
3.2配置文件的格式
配置文件的分类
1、 系统的配置文件:比如数据库连接字符串、比如日志的相关配置等等,这些是系统定义好的。
2、用户自定义的配置文件。例如用户想要读取的一些文件之类
配置文件的格式
一般都是两种,一种是.properties,另外一种是.yml
但是,无论哪一种格式,都必须要命名为application.yml或者application.properties
因为springBoot在启动的时候默认只读取名称为application的配置文件。
springBoot配置的规则(格式?冲突?)
规则1:一个项目当中可以存在两种配置文件(一种是properies,另外一种是yml),但是不建议同时出现两种。
规则2:如果.properties和.yml的配置文件内容冲突了, 那么会怎样处理?优先读取.properties的配置文件。
properies配置文件的语法
properies是以键值对的形式配置的。
同时,也可以在properies当中自定义配置文件的内容
如何读取配置文件的内容
使用@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);
}
}
properties缺点分析
对于一些key,它会有很多冗余的内容:
当多个key存在相同的部分的时候,需要一一把相同的部分列举出来,比较冗余。
yml配置文件
yml配置文件说明
yml是YAML的缩写,它的全称是:"Yet another Markup Language",yml是一个可读性高,易于理解,用来表达数据序列化的格式。
最大的优势:可以跨语言。
yml的特点:
1、写法简单、可读性高;
2、支持更多的数据类型(;
3、支持跨语言的使用:java/python
yml的语法
这个也是按照key-value的形式来进行存储的。
但是它的写法相比于properties更加地简洁。
当多个key存在重复的元素的时候,可以把这些key相同的部分都给提取出来。
properties:
yml对于单、双引号的问题
yml配置对象
多行的写法:
#对象写法1
student :
id : 1
name : 张三
age: 22
单行的写法:
#对象写法2
student2 : {id : 2, name : 李四, age : 20}
获取对象:
第一步:在properties当中存放一个对象:
第二步:新建一个和这个对象属性一模一样的实体类
第三步:把这个实体类注入到Spring容器当中(5大类注解)
第四步:从配置文件当中获取这个对象
第五步:从通过属性注入获取对象
yml配置集合
配置文件:
#dbtypes对应一个实体类
#name对应的是集合
dbtypes : { name: [ mysql, sqlServer,db2 ] }
注入集合:
获取bean:
properties和yml有什么区别(重要)
区别1:properties仅仅支持Java项目,但是yml支持包括Java在内的多种语言(例如python);
区别2:properties的key写起来比较冗余,不像yml那样简易。(yml支持层级,层级之间采用缩进的方式)
区别3:yml支持更多的数据类型(string,object,list)
四、指定文件读取
@PropertySource读取配置文件
这个注解可以作用在类的上面,同时指定读取哪一个配置文件。
如果没有这个注解,那么@Value注解默认读取的是application.properties文件当中的内容。