💟💟前言
友友们大家好,我是你们的小王同学😗😗
今天给大家打来的是 SpringBoot依赖原理分析及配置文件
希望能给大家带来有用的知识
觉得小王写的不错的话麻烦动动小手 点赞👍 收藏⭐ 评论📄
小王的主页:小王同学🚗
小王的gitee:小王同学🏩🏩
小王的github:小王同学💦
- 在
spring-boot-starter-parent
中定义了各种技术的版本信息,组合了一套最优顶配的技术版本 - 在各种
starter
中定义了该功能需要的坐标合集,其中大部分版本信息来自父工程 - 我们的工程继承
parent
,引入starter
后,通过依赖传递,就可以简单获得需要的jar包,并且不会存在版本冲突等问题
配置文件分类
springboot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties
或者application.yml
(application.yaml
)进行配置
- properties
server.port = 8080
这里的8080指的是tomcat默认启动的端口号
- yml
server :
port : 8080
注意这里8080的前面必须加空格 否则会产生语法错误!!
打开idea 点击application.properties
运行application 在浏览器输入8082/Hello 即可运行
我们也可以创建一个application.yml
文件里面更改端口号
如下:
成功!!
SpringBoot提供了2种配置文件
注意:如果在一个springboot项目里有三个配置端口的文件
优先级最高的一定是application.properties
- SpringBoot提供了两种配置文件:
propertei
s 和yml
/yaml
- 默认配置文件名称:
application
- 在同一级目录下优先级为 properties > yml > yaml
yaml`
- YAML的意思是:“Yet Another Markup Language”(仍是一种置标语言)的缩写
- YAML是专门用来写配置文件的语言,非常简洁和强大,远比JSON格式方便
- 可以用之作为你自动化测试框架的配置文件或者用例文件
如下图所述示
properties 和 yml 都是 Spring Boot 支持的两种配置文件,其中 yml 格式的配置文件可以看作是对 properties 配置文件的升级。它们的主要区别有 4 点:定义和定位不同、语法不同:yml 的语法更简单,且可读性更高、yml 可以更好的配置多种数据类型,比如对象和集合、yml 可以跨语言使用
,通用性更好
。
properties文件是最早期的配置文件,也是创建SpringBoot项目默认的文件
properties的基本语法
properties是以键值的形式配置的 key 和 value是以 " = " 来连接的~~
server.port=3000
mytest1:??
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=
utf8
spring.datasource.username=root
spring.datasource.password=root
小tips:配置文件用#
来注释!
YML 的优点
- yml 是⼀个可读性⾼,写法简单、易于理解,它的语法和 JSON 语⾔类似。
- yml ⽀持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。
- yml ⽀持更多的编程语⾔,它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、Ruby、
JavaScript、Perl 中。 - yml 是树形结构的配置⽂件,它的基础语法是“
key: value
”,注意 key 和 value 之间使⽤英⽂冒汗加空格的⽅式组成的,其中的空格不可省略。
使用yml连接数据库
spring:
datasource:
url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncoding=utf8
username: root
password: root
YML配置对象
创建一个学生类
package com.example.demo;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties("student")
@Data
public class Student {
private int id;
private String name;
@Override
public String toString() {
return "Student{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
private int age;
}
定义setter
和 getter
以及toString
方法 这里可以 导入lombok
在maven里导入lombok
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.26</version>
<scope>provided</scope>
</dependency>
这个时候不能用 @value来读取对象 要用 @ConfigurationProperties来读取!!
调用类的实现方法
@Component
public class ReadYml2 {
@Autowired
private StudentComponent studentComponent;
@PostConstruct
public void postConstruct() {
System.out.println(studentComponent);
}
}
以上程序的结果如下图所示:
当然yml 里面也可以这样写~
#student:
# id: 1
# name: 小王
# age: 18
student: {id: 1,name: 张三,age: 18 }
效果也是一样的~~
这就是王同学给大家带来的SpringBoot文件配置
码字不易 还望大家三连支持一下!!