application-dev.yml是 Spring Boot 项目中开发环境的核心配置文件。它不仅定义了应用如何启动、连接哪些服务更是整个项目在本地运行的“总开关”。理解它就理解了 Java 项目如何与环境对话。核心观点application-dev.yml是 Spring Boot 项目在开发环境下的“总指挥”它通过一套约定俗成的配置项自动驱动 Spring Boot 的自动配置机制完成从“启动应用”到“连接数据库”的全部工作。开发者只需遵循标准写法无需编写任何连接代码。一、application-dev.yml的整体作用维度说明类比环境标识通过spring.profiles.active: dev激活表明当前是“开发环境”给项目戴上一个“开发中”的帽子配置中心集中管理所有与开发环境相关的配置端口、数据库、日志、文件上传等项目的“控制面板”自动配置触发器Spring Boot 会根据这些配置项自动创建相应的 Bean如 DataSource提供“原材料”Spring Boot 自动“生产”环境隔离与application-prod.yml、application-test.yml隔离互不干扰为不同环境准备不同的“运行手册”约定优于配置遵循 Spring Boot 的默认约定只需覆盖需要修改的配置项只改你要改的其他的按默认来二、标准化通用配置参考注解版以下是application-dev.yml的完整标准化配置模板带有详细注解可直接复制使用。yaml# # Spring Boot 开发环境配置文件 (application-dev.yml) # 激活方式spring.profiles.active: dev # 版本要求Spring Boot 2.x / 3.x # # ---------- 1. 服务器配置 ---------- server: port: 8080 # 服务启动端口默认8080 servlet: context-path: /api # API统一前缀可选访问时需加 /api tomcat: max-connections: 10000 # 最大并发连接数 accept-count: 100 # 等待队列最大长度 threads: max: 200 # 最大工作线程数 min-spare: 10 # 最小空闲线程数 connection-timeout: 30000 # 连接超时毫秒 uri-encoding: UTF-8 # URI编码 # ---------- 2. Spring 核心配置 ---------- spring: # 2.1 激活的 profile此处指定 dev profiles: active: dev # 2.2 应用名称 application: name: java-study-platform # 2.3 数据源配置数据库连接—— 核心部分 datasource: # -------- 连接 URL -------- # 格式jdbc:mysql://主机:端口/数据库名?参数列表 # 127.0.0.1 本机3306 MySQL 默认端口 # MySQL 8.0 必须加 serverTimezone否则时间字段会差8小时 url: jdbc:mysql://127.0.0.1:3306/mysql_learn?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/ShanghaiuseSSLfalseallowPublicKeyRetrievaltrue username: readonly_user # 数据库用户名需在 MySQL 中创建 password: readonly_pass # 数据库密码有特殊字符时加引号 driver-class-name: com.mysql.cj.jdbc.Driver # MySQL 8.0 驱动 # -------- HikariCP 连接池配置Spring Boot 默认连接池-------- hikari: pool-name: MyHikariCP # 连接池名称 maximum-pool-size: 20 # 最大连接数建议根据并发量调整 minimum-idle: 5 # 最小空闲连接数 connection-timeout: 30000 # 获取连接超时毫秒 idle-timeout: 600000 # 空闲连接最大存活时间毫秒10分钟 max-lifetime: 1800000 # 连接最大存活时间毫秒30分钟 connection-test-query: SELECT 1 # 连接有效性测试 auto-commit: true # 自动提交事务 register-mbeans: true # 监控指标上报 # 2.4 JacksonJSON序列化配置 jackson: date-format: yyyy-MM-dd HH:mm:ss time-zone: Asia/Shanghai default-property-inclusion: non_null # 不序列化 null 值 # 2.5 文件上传配置 servlet: multipart: enabled: true max-file-size: 10MB # 单个文件最大大小 max-request-size: 50MB # 单次请求总文件大小 file-size-threshold: 2MB # 超过此大小则写入磁盘临时文件 location: ./tmp/uploads # 临时文件存储路径 # ---------- 3. MyBatis 配置 ---------- mybatis: type-aliases-package: com.mysqllearn.entity # 实体类包路径 mapper-locations: classpath:mapper/*.xml # Mapper XML 文件位置 configuration: map-underscore-to-camel-case: true # 驼峰命名自动映射 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 开发环境日志输出 lazy-loading-enabled: true cache-enabled: true # ---------- 4. 日志配置 ---------- logging: level: root: INFO # 全局日志级别 com.mysqllearn: DEBUG # 项目包日志级别 org.apache.ibatis: DEBUG # MyBatis 日志 java.sql: DEBUG # SQL 日志 pattern: console: %d{yyyy-MM-dd HH:mm:ss} - %msg%n file: name: logs/application.log # 日志文件路径 max-size: 10MB max-history: 30三、配置标准速查表配置模块关键配置项推荐值开发环境说明服务器server.port8080服务启动端口服务器server.servlet.context-path/api可选API统一前缀数据库URLspring.datasource.urljdbc:mysql://127.0.0.1:3306/数据库名?...MySQL 8.0 需加serverTimezone数据库账号spring.datasource.username与 MySQL 中创建的用户一致—数据库密码spring.datasource.password有特殊字符时加双引号—驱动类spring.datasource.driver-class-namecom.mysql.cj.jdbc.DriverMySQL 8.0连接池最大连接数spring.datasource.hikari.maximum-pool-size20根据并发量调整连接池空闲连接数spring.datasource.hikari.minimum-idle5保持少量空闲连接MyBatis日志mybatis.configuration.log-implStdOutImpl开发环境开启日志级别logging.level.com.yourpackageDEBUG开发环境使用 DEBUG文件上传大小spring.servlet.multipart.max-file-size10MB根据业务需求调整四、数据库连接配置怎么让 Java 项目连上 MySQL 的这是整个配置中最核心的部分。下面以Spring Boot MyBatis MySQL为例完整拆解连接过程。4.1 数据库连接配置的四要素配置项作用示例驱动类driver-class-name告诉 Spring Boot 使用哪个 JDBC 驱动com.mysql.cj.jdbc.Driver连接URLurl告诉 Spring Boot 数据库在哪里、用什么协议、连接参数jdbc:mysql://127.0.0.1:3306/mysql_learn?...用户名username数据库认证账号readonly_user密码password数据库认证密码readonly_pass4.2 一条完整的数据库连接链路4.3 驱动版本对应关系MySQL 版本驱动类Maven 依赖MySQL 5.xcom.mysql.jdbc.Drivermysql-connector-java5.xMySQL 6.x 及以上com.mysql.cj.jdbc.Drivermysql-connector-java8.x4.4 连接 URL 参数详解参数作用推荐值useUnicode启用 Unicode 字符集支持truecharacterEncoding指定字符编码utf-8serverTimezoneMySQL 8.0 必须配置指定时区Asia/ShanghaiuseSSL是否使用 SSL 加密连接开发环境false生产环境trueallowPublicKeyRetrieval解决 MySQL 8.0 的公钥检索异常true4.5 连接池工作机制4.6 配置与代码的映射关系配置文件Java 代码Spring Boot 自动完成spring.datasource.urlHikariConfig.setJdbcUrl(url)spring.datasource.usernameHikariConfig.setUsername(username)spring.datasource.passwordHikariConfig.setPassword(password)spring.datasource.driver-class-nameHikariConfig.setDriverClassName(driver)spring.datasource.hikari.maximum-pool-sizeHikariConfig.setMaximumPoolSize(size) 开发者只需在application-dev.yml中配置Spring Boot 的自动配置机制会自动读取这些配置并完成DataSource的创建和注册。五、配置模块化与环境切换Spring Boot 支持通过spring.profiles.active参数切换不同环境的配置实现配置的模块化管理yaml# application.yml主配置文件 spring: profiles: active: dev # 默认激活 dev 环境启动时可通过命令行参数覆盖bashjava -jar app.jar --spring.profiles.activeprod六、总结application-dev.yml的完整角色问题答案整体作用定义 Spring Boot 项目在开发环境下的所有配置是项目与开发环境之间的“接口文档”数据库连接原理Spring Boot 自动读取spring.datasource配置通过 JDBC 驱动创建连接池MyBatis/JPA 从连接池获取连接执行 SQL为什么不用写连接代码Spring Boot 的自动配置机制DataSourceAutoConfiguration会根据配置自动创建DataSourceBean核心文件有哪些application.yml主配置application-{profile}.yml环境专用配置如何验证连接成功启动日志中看到HikariCP启动信息且无Access denied或Communications link failure错误一句话总结application-dev.yml是 Spring Boot 项目在开发环境下的“完整说明书”。它通过标准化的配置项自动驱动 Spring Boot 完成从端口设置、数据库连接到日志输出的全部工作。开发者只需按照规范填写配置Spring Boot 会自动完成剩余工作——这就是 Spring Boot“约定优于配置”设计哲学的完美体现。七、schema.sql建表 data.sql填数据两者之间的关系它们之间没有互相读取的关系只是按顺序先后执行data.sql依赖schema.sql先建好表才能插入数据。