Java 配置文件读取指南:多种方式解析与应用

⟁ sportstream365 ⏳ 2025-10-06 15:44:18 👤 admin 👁️ 6534 ❤️ 547
Java 配置文件读取指南:多种方式解析与应用

目录

引言

使用 ResourceBundle 读取配置文件

使用 Properties 读取配置文件并创建 DataSource

3.1 从文件系统读取配置文件

3.2 从类路径读取配置文件

使用 ConfigurableApplicationContext 读取 Spring 配置文件

使用 YamlPropertiesFactoryBean 读取 YAML 配置文件

使用 HikariCP 配置文件读取

使用 Apache Commons Configuration 读取配置文件

总结

1. 引言

在现代应用程序中,配置文件是管理和配置应用程序行为的重要组成部分。Java 提供了多种方式来读取配置文件,包括使用 ResourceBundle、Properties、Spring 框架、YAML 文件、HikariCP 连接池以及 Apache Commons Configuration 等。本文将详细介绍这些方式,并通过示例代码展示如何读取配置文件并创建 DataSource。

2. 使用 ResourceBundle 读取配置文件

ResourceBundle 是 Java 提供的一个用于读取属性文件的类。它可以从类路径中读取属性文件,并将其内容加载到 ResourceBundle 对象中。

import java.util.ResourceBundle;

import java.sql.DriverManager;

import java.sql.Connection;

public class ResourceBundleExample {

public static void main(String[] args) throws Exception {

// 使用 ResourceBundle 读取配置文件

ResourceBundle druidBundle = ResourceBundle.getBundle("druid");

// 获取配置文件中的属性值

String className = druidBundle.getString("druid.driverClassName");

String url = druidBundle.getString("druid.url");

String userName = druidBundle.getString("druid.username");

String passWord = druidBundle.getString("druid.password");

// 使用 DriverManager 获取数据库连接

Connection connection = DriverManager.getConnection(url, userName, passWord);

// 使用 connection 进行数据库操作

connection.close();

}

}

3. 使用 Properties 读取配置文件并创建 DataSource

Properties 是 Java 提供的一个用于读取属性文件的类。它可以从文件系统或类路径中读取属性文件,并将其内容加载到 Properties 对象中。

3.1 从文件系统读取配置文件

import java.util.Properties;

import java.io.FileInputStream;

import java.io.InputStreamReader;

import java.nio.charset.Charset;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import java.sql.Connection;

public class PropertiesFileExample {

public static void main(String[] args) throws Exception {

// 创建 Properties 对象

Properties properties = new Properties();

// 从文件系统读取配置文件

properties.load(new InputStreamReader(new FileInputStream("src\\main\\resources\\druid.properties"), Charset.forName("UTF-8")));

// 使用 DruidDataSourceFactory 创建 DataSource

DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);

// 获取数据库连接

Connection connection = dataSource.getConnection();

// 使用 connection 进行数据库操作

connection.close();

}

}

3.2 从类路径读取配置文件

import java.util.Properties;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import java.sql.Connection;

public class PropertiesClasspathExample {

public static void main(String[] args) throws Exception {

// 创建 Properties 对象

Properties properties = new Properties();

// 从类路径读取配置文件

properties.load(App.class.getClassLoader().getResourceAsStream("druid.properties"));

// 使用 DruidDataSourceFactory 创建 DataSource

DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);

// 获取数据库连接

Connection connection = dataSource.getConnection();

// 使用 connection 进行数据库操作

connection.close();

}

}

4. 使用 ConfigurableApplicationContext 读取 Spring 配置文件

如果你使用 Spring 框架,可以通过 ConfigurableApplicationContext 读取配置文件并创建 DataSource。

import org.springframework.context.support.ClassPathXmlApplicationContext;

import javax.sql.DataSource;

import java.sql.Connection;

public class SpringConfigExample {

public static void main(String[] args) throws Exception {

// 使用 Spring 的 ClassPathXmlApplicationContext 读取配置文件

ConfigurableApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

// 获取 DataSource Bean

DataSource dataSource = context.getBean(DataSource.class);

// 获取数据库连接

Connection connection = dataSource.getConnection();

// 使用 connection 进行数据库操作

connection.close();

// 关闭 Spring 上下文

context.close();

}

}

5. 使用 YamlPropertiesFactoryBean 读取 YAML 配置文件

如果你使用的是 YAML 格式的配置文件,可以通过 YamlPropertiesFactoryBean 读取配置文件并创建 DataSource。

import org.springframework.beans.factory.config.YamlPropertiesFactoryBean;

import org.springframework.core.io.ClassPathResource;

import java.util.Properties;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import java.sql.Connection;

public class YamlConfigExample {

public static void main(String[] args) throws Exception {

// 创建 YamlPropertiesFactoryBean 对象

YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();

// 设置 YAML 配置文件路径

yaml.setResources(new ClassPathResource("druid.yml"));

// 获取 Properties 对象

Properties properties = yaml.getObject();

// 使用 DruidDataSourceFactory 创建 DataSource

DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);

// 获取数据库连接

Connection connection = dataSource.getConnection();

// 使用 connection 进行数据库操作

connection.close();

}

}

6. 使用 HikariCP 配置文件读取

如果你使用的是 HikariCP 连接池,可以通过 HikariConfig 读取配置文件并创建 DataSource。

import com.zaxxer.hikari.HikariConfig;

import com.zaxxer.hikari.HikariDataSource;

import javax.sql.DataSource;

import java.sql.Connection;

public class HikariConfigExample {

public static void main(String[] args) throws Exception {

// 创建 HikariConfig 对象并读取配置文件

HikariConfig config = new HikariConfig("src/main/resources/hikari.properties");

// 使用 HikariConfig 创建 DataSource

DataSource dataSource = new HikariDataSource(config);

// 获取数据库连接

Connection connection = dataSource.getConnection();

// 使用 connection 进行数据库操作

connection.close();

}

}

7. 使用 Apache Commons Configuration 读取配置文件

Apache Commons Configuration 是一个强大的配置文件读取工具,支持多种配置文件格式。

import org.apache.commons.configuration2.Configuration;

import org.apache.commons.configuration2.builder.fluent.Configurations;

import org.apache.commons.configuration2.ex.ConfigurationException;

import java.util.Properties;

import javax.sql.DataSource;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import java.sql.Connection;

public class CommonsConfigExample {

public static void main(String[] args) throws Exception {

// 创建 Configurations 对象

Configurations configs = new Configurations();

try {

// 读取配置文件

Configuration config = configs.properties("src/main/resources/druid.properties");

// 将配置文件内容加载到 Properties 对象中

Properties properties = new Properties();

properties.putAll(config.getMap());

// 使用 DruidDataSourceFactory 创建 DataSource

DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);

// 获取数据库连接

Connection connection = dataSource.getConnection();

// 使用 connection 进行数据库操作

connection.close();

} catch (ConfigurationException e) {

e.printStackTrace();

}

}

}

8. 总结

本文介绍了多种读取配置文件并创建 DataSource 的方式,包括使用 ResourceBundle、Properties、Spring 框架、YAML 文件、HikariCP 连接池以及 Apache Commons Configuration 等。每种方式都有其适用的场景和优缺点。选择合适的方式取决于你的项目需求和技术栈。希望这些示例能够帮助你在实际项目中更好地管理和使用配置文件。

相关推荐