目录

  • ✨前言:
  • ✨1.什么是配置文件
  • ✨配置文件的作用
  • ✨配置文件的格式
  • ✨2.不同格式的配置文件常用的有以下几种:
  • ✨3.怎么读取配置文件?


✨前言:

✨1.什么是配置文件

配置文件本质上是包含成功操作程序所需信息的文件,这些信息以特定方式构成。是用户可配置的,通常存储在纯文本文件

配置文件可以是各种格式,完全凭借程序员的发挥,不过出于方便,大部分会选择的配置文件格式集中在那几种.一般而言程序启动时,会加载该程序对应的配置文件内的信息

✨配置文件的作用

在我们所编写的项目中,所有的重要数据都是在配置文件中配置的,因此配置文件是非常重要的。

有这么几点作用:
1.数据库的连接工作
2.端口号的配置
3.打印日志等等

我们的后端程序都是要连接数据库的,所以没有配置信息你就不能连接数据库,甚至不能排查日志问题。

✨配置文件的格式

配置⽂件有:

.properties

java 配置文件数据库指定参数 java配置文件用什么格式_java

后缀是 .properties的一种文件,他和和yml文件,json格式一样都是属性文件,内部以key=value格式存储内容,一般以这种文件设置一些参数,使代码更加灵活(比方说:数据库文件等等都是在properties文件中),使用这种文件在不同环境中只需要更改配置文件即可。

键值对格式存储数据
“ = ” 后面,值前面的空格,会自动忽略掉。
值后面的空格,不会忽略。
“ = ” 后面的双引号不会忽略。
“ # ”号后面内容,为注释,

✨2.不同格式的配置文件常用的有以下几种:

配置文件格式

简介

语法定义

优点

缺点

常见使用场景

常见编程语言

INI

简单的文本文件格式

节(section)和键值对(key-value pairs)

简单易懂,容易编辑和维护

对复杂数据结构和嵌套层次支持有限

存储简单的配置信息

Python, Java, C#

XML

用于存储和传输数据的标记语言

标签(tags)和属性(attributes)

自我描述性和可扩展性,支持复杂数据结构和命名空间

语法较冗长,文件体积较大,解析和处理速度较慢

跨平台和跨语言的数据交换

Java, C#, JavaScript

YAML

人类可读的数据序列化格式

缩进和结构化的键值对

简洁的语法和易读性,支持注释和引用

对一些复杂数据结构的表示相对有限

配置文件和数据序列化

Python, Ruby, JavaScript

JSON

轻量级的数据交换格式

花括号表示对象,方括号表示数组,键和字符串值需用双引号括起

简洁的语法和广泛的支持,易于解析和处理

不支持注释,相对其他格式可能稍显冗长

前后端数据传输,API交互

JavaScript, Python, Java

Properties

简单的键值对文件格式

键值对,使用等号或冒号分隔

简单易懂,易于解析和处理

对复杂数据结构和嵌套层次支持有限

存储简单的配置信息

Java

TOML

面向配置文件的语言

键值对和表(Table)

简洁易读,支持注释和多种数据类型

相对较新,支持度可能稍低

配置文件和数据序列化

Rust, Go, Python

HCL

HashiCorp 公司开发的配置语言

块和键值对

简洁易读,支持复杂数据结构和嵌套

相对较新,使用场景相对局限

基础设施自动化和云环境管理

Terraform

YAML Front Matter

嵌入在文件开头的YAML格式元数据块,常用于静态网站生成器

YAML语法

灵活易读,方便管理网站元数据

仅适用于特定场景

静态网站生成器

Jekyll, Hugo, Gatsby

.env

用于存储环境变量配置的简单文本文件

键值对,使用等号或冒号分隔

简单易懂,方便管理环境变量

不适合复杂配置需求

环境变量配置

Node.js, Python, Ruby, Go, Java

✨3.怎么读取配置文件?

1.加载配置文件

//加载配置文件
        Properties properties=new Properties();
        properties.load(new FileInputStream("src\\jdbc.properties"));
        //在工厂中创建一个数据源,数据源的连接信息来源于properties配置文件中
        DataSource dataSource= DruidDataSourceFactory.createDataSource(properties);
        Connection connection=dataSource.getConnection();
        ResultSet rs=connection.prepareStatement("select count(*) from studenttab").executeQuery();
        if(rs.next()){
            System.out.println(rs.getInt(1));
        }
        connection.close();//释放连接----》将当前的工作连接,释放为空闲连接

2.将配置文件放在map集合里面代码实现

//将配置信息放在map集合中
        HashMap map=new HashMap();
        map.put("driverClassName","com.mysql.cj.jdbc.Driver");
        map.put("url","jdbc:mysql://localhost:3306/chenzhoudianyin");
        map.put("username","root");
        map.put("password","root");
        map.put("initialSize","10");
        map.put("minIdle","5");
        map.put("maxActive","500");
        map.put("maxWait","5000");
        //加载配置文件
        Properties properties=new Properties();
        properties.load(new FileInputStream("src\\jdbc.properties"));
        //在工厂中创建一个数据源,数据源的连接信息来源于properties配置文件中
        DataSource dataSource= DruidDataSourceFactory.createDataSource(map);
        Connection connection=dataSource.getConnection();
        ResultSet rs=connection.prepareStatement("select count(*) from studenttab").executeQuery();
        if(rs.next()){
            System.out.println(rs.getInt(1));
        }
        connection.close();//释放连接----》将当前的工作连接,释放为空闲连接
    }