zl程序教程

您现在的位置是:首页 >  Javascript

当前栏目

SpringBoot依赖原理分析及配置文件

2023-03-07 09:14:49 时间

??前言​ 友友们大家好,我是你们的小王同学?? 今天给大家打来的是 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提供了两种配置文件:properteis 和 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;


}

定义settergetter 以及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文件配置