当前位置: 首页 > 技术教程

java配置文件怎么创建 java中配置文件的作用是什么

  在 Java 开发中,配置文件是连接 “代码逻辑” 与 “环境参数” 的关键桥梁。很多开发者习惯将数据库地址、端口号、密钥等参数硬编码到代码中,导致后续修改需重新编译、部署,效率极低。而配置文件能将这些可变参数单独存储,实现 “配置与代码分离”。小编将先拆解 Java 配置文件的核心作用,再详解三种主流配置文件的创建方法,助你规范配置管理,提升开发与维护效率。

  一、java中配置文件的作用是什么

  配置文件的本质是 “存储可变参数的独立文件”,核心作用体现在三个维度,直接解决硬编码的痛点:

  1. 解耦配置与代码,避免重复开发

  硬编码时,若需修改数据库地址(如从测试环境切换到生产环境),需找到代码中所有涉及该地址的地方逐一修改,再重新编译、打包、部署,步骤繁琐且易出错。

  配置文件将参数集中存储,代码通过 “读取配置文件” 获取参数 —— 修改时只需编辑配置文件,无需改动代码,更无需重新编译。例如:将数据库 URL、用户名、密码存入配置文件,切换环境时仅需替换配置文件,代码逻辑完全不变,大幅减少重复开发与部署成本。

  2. 简化维护,降低修改风险

  配置文件采用 “键值对” 或 “结构化” 格式,参数清晰易读,非开发人员(如运维人员)也能轻松修改。例如:运维人员无需懂代码,只需在配置文件中调整服务器端口号、日志级别,即可完成服务参数优化;若参数硬编码在代码中,运维人员需依赖开发人员修改,沟通成本高且易因代码误改引入 Bug。

  3. 适配多环境,提升部署灵活性

Java 应用通常需在 “开发、测试、生产” 多环境运行,不同环境的参数(如数据库地址、API 域名)差异较大。配置文件支持 “多环境隔离”—— 为每个环境创建独立配置文件(如application-dev.properties、application-prod.properties),部署时只需指定启用的环境,应用即可自动加载对应配置,无需手动调整参数。例如:Spring Boot 项目通过spring.profiles.active=prod指定启用生产环境配置,实现 “一次打包,多环境部署”。

360截图20250425224758032.jpg

  二、Java 配置文件的创建方法

  Java 中常用的配置文件格式有.properties(基础键值对)、.yml(简洁结构化)、.xml(复杂场景),创建方法与适用场景不同,以下为详细步骤:

  (一)格式 1:.properties 文件(最基础,全场景通用)

  .properties是 Java 最经典的配置格式,采用 “键 = 值” 结构,语法简单,支持所有 Java 项目(如普通 Java 项目、Spring 项目),创建步骤如下:

  创建文件:

  在 IDE(如 IntelliJ IDEA)的项目中,右键 “src/main/resources” 目录(Maven/Gradle 项目标准资源目录)→ 选择 “New→File”,文件名输入config.properties(前缀自定义,后缀必须为.properties)。

  编写配置内容:

  按 “键 = 值” 格式编写参数,键名建议用 “层级。名称” 格式(如db.url),增强可读性,示例:

  properties取消自动换行复制

  # 数据库配置(#开头为注释)

  db.url=jdbc:mysql://localhost:3306/test_db

  db.username=root

  db.password=123456

  # 服务配置

  server.port=8080

  server.log.level=info

  注意:中文需用 Unicode 编码(如 “测试” 编码为\u6D4B\u8BD5),否则可能出现乱码。

  代码中读取:

  通过Properties类读取配置,示例代码:

  java取消自动换行复制

  import java.io.InputStream;

  import java.util.Properties;

  public class ReadProperties {

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

  // 1. 创建Properties对象

  Properties props = new Properties();

  // 2. 加载配置文件(通过类加载器获取资源流)

  InputStream is = ReadProperties.class.getClassLoader().getResourceAsStream("config.properties");

  props.load(is);

  // 3. 读取配置参数

  String dbUrl = props.getProperty("db.url");

  String dbUser = props.getProperty("db.username");

  System.out.println("数据库地址:" + dbUrl);

  System.out.println("数据库用户名:" + dbUser);

  }

  }

  (二)格式 2:.yml 文件(简洁结构化,Spring Boot 首选)

  .yml(YAML)采用缩进表示层级,语法简洁、可读性强,支持列表、嵌套结构,是 Spring Boot 项目的默认配置格式,创建步骤如下:

  创建文件:

  在 Spring Boot 项目的 “src/main/resources” 目录下,右键 “New→File”,文件名输入application.yml(Spring Boot 默认识别此名称,自定义名称需额外配置)。

  编写配置内容:

  采用 “键:值”(冒号后需加空格)格式,缩进用 2 个空格(不支持 Tab),支持嵌套与列表,示例:

  yaml取消自动换行复制

  # 服务配置

  server:

  port: 8081 # 服务端口

  servlet:

  context-path: /demo # 项目访问路径

  # 数据库配置(嵌套结构)

  spring:

  datasource:

  url: jdbc:mysql://localhost:3306/prod_db

  username: admin

  password: 654321

  driver-class-name: com.mysql.cj.jdbc.Driver

  # 列表结构(如多数据源配置)

  app:

  datasources:

  - name: db1

  url: jdbc:mysql://localhost:3306/db1

  - name: db2

  url: jdbc:mysql://localhost:3306/db2

  优势:相比.properties,嵌套结构更清晰,多参数场景下可读性更高。

  代码中读取:

  Spring Boot 项目可通过@ConfigurationProperties或@Value注解自动注入配置,无需手动加载,示例:

  java取消自动换行复制

  import org.springframework.beans.factory.annotation.Value;

  import org.springframework.web.bind.annotation.GetMapping;

  import org.springframework.web.bind.annotation.RestController;

  @RestController

  public class ConfigController {

  // 通过@Value注入配置

  @Value("${server.port}")

  private int serverPort;

  @Value("${spring.datasource.url}")

  private String dbUrl; 

  @GetMapping("/config")

  public String getConfig() {

  return "服务端口:" + serverPort + ",数据库地址:" + dbUrl;

  }

  }

  (三)格式 3:.xml 文件(复杂场景,传统框架常用)

  .xml采用标签式结构,支持复杂的嵌套与约束,常用于传统 Java 框架(如 Spring、MyBatis)的配置,创建步骤如下:

  创建文件:

  在 MyBatis 项目的 “src/main/resources” 目录下,右键 “New→File”,文件名输入mybatis-config.xml(MyBatis 核心配置文件)。

  编写配置内容:

  通过标签定义配置,需遵循框架的 XML Schema 约束(如 MyBatis 的mybatis-3-config.dtd),示例:

  xml取消自动换行复制

  适用场景:需严格约束配置结构、支持复杂嵌套的场景(如框架级配置)。

  代码中读取:

  以 MyBatis 为例,通过SqlSessionFactory加载 XML 配置,示例:

  java取消自动换行复制

  import org.apache.ibatis.io.Resources;

  import org.apache.ibatis.session.SqlSessionFactory;

  import org.apache.ibatis.session.SqlSessionFactoryBuilder;

  import java.io.InputStream; 

  public class MyBatisConfig {

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

  // 加载XML配置文件

  String resource = "mybatis-config.xml";

  InputStream inputStream = Resources.getResourceAsStream(resource);

  // 创建SqlSessionFactory

  SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

  System.out.println("MyBatis配置加载成功:" + sqlSessionFactory);

  }

  }

  Java 配置文件虽小,却是规范开发、提升维护效率的关键。掌握其创建方法与作用,能避免硬编码带来的痛点,让项目更易扩展、更易部署,为后续迭代奠定良好基础。

 


猜你喜欢