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 等。每种方式都有其适用的场景和优缺点。选择合适的方式取决于你的项目需求和技术栈。希望这些示例能够帮助你在实际项目中更好地管理和使用配置文件。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库