iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot详解配置文件的用途与用法
  • 745
分享到

SpringBoot详解配置文件的用途与用法

2024-04-02 19:04:59 745人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1. SpringBoot 配置文件1.1 配置文件的作用1.2 配置文件的格式1.3 properties 配置文件说明1.3.1 properties 基本语法1.3.2 读

1. SpringBoot 配置文件

1.1 配置文件的作用

配置文件中配置了项目中重要的数据, 例如:

  • 数据库的连接信息 (用户名密码)
  • 项目的启动端口
  • 第三方系统的调用密钥等信息
  • 用于发现和定位问题的普通日志和异常日志等

Spring Boot项目没有配置信息, 就不能连接和操作数据库, 甚至不能保存可以用于排查问题的关键日志. 所以配置文件非常重要.

1.2 配置文件的格式

在Spring Boot 中配置文件主要分为两种:

  • .properties (主要是key=value格式)
  • .yml (主要是key: value格式)

注意:

  • 当项目中既有 .properties.yml , 且两个配置文件中有相同的配置项, Spring Boot 会优先考虑 .properties , 因为 .properties 的优先级更高一些.
  • 一个项目中允许存在两种不同的配置文件, .properties .yml, 但是在项目中建议只使用一种配置文件的格式.

1.3 properties 配置文件说明

1.3.1 properties 基本语法

properties 是以 key=value 这种格式配置的.

server.port=9090
spring.datasource.url=jdbc:Mysql://127.0.0.1:3306/2022-6-1
spring.datasource.username=root
spring.datasource.passWord=1234

配置文件的注释信息使用 “#”

1.3.2 读取配置文件

读取配置文件的内容, 可以使用 @Value 注解来实现

@Value 注解使用 "${}" 的格式读取.

@Component
public class Read implements InitializingBean {
    @Value("${server.port}")
    private String port;
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println();
        System.out.println(port);
        System.out.println();
    }
}

1.4 yml 配置文件说明

yml 是 YMAL 是缩写, 它的全称是 Yet Another Markup Language, 译为 另一种标记语言.

1.4.1 yml 基本语法

yml 是树形结构的配置文件, 它的基础语法是 key: value, 这里的:后面跟着一个空格.

server:
  port: 9090
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/2022-6-1
    username: root
    password: 1234

1.4.2 yml 使用进阶

# ~代表null
null.value: ~

查看一段代码

string:
  str1: Hello \n World
  str2: 'Hello \n World'
  str3: "Hello \n World"

读取yml中的这段代码

@Component
public class Read1 implements InitializingBean {
    @Value("${string.str1}")
    private String str1;
    @Value("${string.str2}")
    private String str2;
    @Value("${string.str3}")
    private String str3;
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println();
        System.out.println("str1: "+str1);
        System.out.println("str2: "+str2);
        System.out.println("str3: "+str3);
        System.out.println();
    }
}

运行结果:

字符串加上双引号, 会执行\n 换行.

1.4.3 配置对象

yml 中配置对象

student:
  id: 1
  name: zhangsan
  age: 18

读取配置的对象, 就需要用到另一个注解: @ConfigurationProperties

@Component
@ConfigurationProperties("student")
public class User {
    private int id;
    private String name;
    private int age;
	// 一堆getter setter
}

读取

@Component
public class Read2 implements InitializingBean {
    @Autowired
    private Student student;
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println();
        System.out.println(student);
        System.out.println();
    }
}

1.4.4 配置集合

yml 中 配置集合

mylist:
  colors:
    - RED
    - GREEN
    - BLACK

读取配置集合

@Component
@ConfigurationProperties("mylist")
public class MyList {
    private List<String> colors;
    // 一堆getter 和 setter
}

打印代码

@Component
public class Read3 implements InitializingBean {
    @Autowired
    private MyList myList;
    @Override
    public void afterPropertiesSet() throws Exception {
        for (String val : myList.getColors()){
            System.out.println(val);
        }
    }
}

1.4.5 yml的另一种写法(行内写法)

配置对象

student: {id: 1,name: zhangsan,age: 18}

配置集合

mylist: {colors: [RED,GREEN,BLACK]}

1.5 properties 和 yml 比较

properties 的语法更复杂, yml 语法更简洁

yml通用性更好, 支持更多的语言, 如 Java, Go, python

yml支持更多的数据类型

yml格式的配置文件写的时候容易出错(在:之后有一个空格), 而properties写法传统比较复制,但不太容易出错

2. 读取 SpringBoot 配置文件的方法

2.1 使用 @Value 读取配置文件

只能读取一个

@Component
public class Read implements InitializingBean {
    @Value("${server.port}")
    private String port;
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println();
        System.out.println(port);
        System.out.println();
    }
}

2.2 使用@ConfigurationProperties

直接在类上写

@Component
@ConfigurationProperties("mylist")
public class MyList {
    private List<String> colors;
    public List<String> getColors() {
        return colors;
    }
    public void setColors(List<String> colors) {
        this.colors = colors;
    }
}

2.3 @PropertySource读取指定配置文件

jdbc.username=root2
jdbc.password=root1

@Component
@PropertySource(value = {"classpath:application.properties"})
public class JDBC implements InitializingBean {
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println(username + " " + password);
    }
}

到此这篇关于Spring Boot详解配置文件的用途与用法的文章就介绍到这了,更多相关Spring Boot配置文件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot详解配置文件的用途与用法

本文链接: https://www.lsjlt.com/news/151983.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作