Java的application.yml文件的配置全过程

 更新时间:2026年03月12日 09:27:40   作者:‍小林同学学JAVA  
本文介绍了在Java项目中使用application.yml文件进行配置的方法,重点讲解了数据源、连接池、MyBatis、MyBatis-Plus和Redis的配置,同时,还介绍了如何使用别名来简化MyBatis的配置

在 Java 项目中,application.yml 文件常用于配置各种应用程序属性,尤其是在使用 Spring Boot 框架时。

1.1 基本配置

server:
  port: 8080 # 设置应用的端口号

spring:
  application:
    name: my-app # 设置应用的名称,一般与项目名称一致

1.2 配置数据源

假设你要配置一个 MySQL 数据源,常用的配置如下:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC # 数据库URL
    username: root # 数据库用户名
    password: mypassword # 数据库密码
    driver-class-name: com.mysql.cj.jdbc.Driver # JDBC驱动类名

1.3 配置连接池

配置数据库 HikariCP 连接池(Spring Boot 默认的连接池):

spring:
  datasource:
    hikari:
      maximum-pool-size: 10 # 最大连接池大小
      minimum-idle: 5 # 最小空闲连接数
      idle-timeout: 30000 # 连接空闲时间(毫秒)
      connection-timeout: 20000 # 连接超时时间(毫秒)
      max-lifetime: 1800000 # 连接最大生命周期(毫秒)

1.4 MyBatis 配置

MyBatis 是一个优秀的持久层框架,支持定制化 SQL、存储过程以及高级映射。

配置:mapper-locations: classpath:mapper/*.xml

就可以把xml文件放在 resource/mapper包下

配置:type-aliases-package: com.example.demo.model

问题:可以看到resultType每次都要配置好长的全类名。

<select id="getUser" resultType="com.wiener.study.pojo.User" parameterType="int"> 

</select>

项目启动的时候,mybatis会自动扫描指定包及其子包下的所有实体类并将别名装配到上下文中,默认别名是类名和类名首字母小写。

例如,项目包含多个模块,每个模块(例如 study)都有自己的pojo,扫描多个包可以只写到模块的父级目录:

 mybatis:
     type-aliases-package: com.wiener.demo # 具体到模块study所在的父级目录

类User为com.wiener.study.pojo包下的实体类,这里使用别名user即可。在上述配置的基础上,还可以通过在实体类上加入@Alias注解来进一步设置别名:

// 自定义实体类别名
@Alias("userMsg")
public class User implements Serializable {
    //实现serializable接口
    private static final long serialVersionUID = -2241172936329900646L;
    private String id;
    private String password;
    private String name;
}

此时,User类的别名被重定义为userMsg,select语句更新如下:

<select id="getUser" resultType="userMsg" parameterType="int">
</select>
mybatis:
  mapper-locations: classpath:mapper/*.xml   # Mapper XML 文件的位置
  type-aliases-package: com.example.demo.model # 别名包路径
  configuration:
    map-underscore-to-camel-case: true # 开启驼峰命名自动映射
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 开启SQL日志

1.5 MyBatis-Plus 配置

MyBatis-Plus 是 MyBatis 的增强工具,提供了更多的功能,如 CRUD 操作、分页、SQL 注入器等。

mybatis-plus:
  mapper-locations: "classpath*:/mapper/**/*.xml" # Mapper.xml文件地址,当前这个是默认值。
  type-aliases-package: com.example.demo.model # 别名包路径
  global-config:
    db-config:
      logic-delete-field: deleted # 逻辑删除字段名称
      logic-delete-value: 1 # 逻辑删除值
      logic-not-delete-value: 0 # 逻辑未删除值
  configuration:
    map-underscore-to-camel-case: true # 开启驼峰命名自动映射

1.6 Redis 配置

Redis 是一个高性能的 key-value 存储系统,常用于缓存、消息队列等场景。

spring:
  redis:
    host: localhost # Redis 服务器地址
    port: 6379 # Redis 服务器端口
    password: mypassword # Redis 密码
    database: 0 # 使用的数据库索引
    timeout: 2000 # 连接超时时间(毫秒)
    lettuce:
      pool:
        max-active: 8 # 连接池最大连接数
        max-wait: -1 # 连接池最大阻塞等待时间(负数表示不限制)
        max-idle: 8 # 连接池中的最大空闲连接
        min-idle: 0 # 连接池中的最小空闲连接

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 关于BufferedReader的读取效率问题

    关于BufferedReader的读取效率问题

    这篇文章主要介绍了关于BufferedReader的读取效率问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java接口统一样式返回模板简介

    Java接口统一样式返回模板简介

    这篇文章主要介绍了Java接口统一样式返回模板简介,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • idea的spring boot项目实现更改端口号操作

    idea的spring boot项目实现更改端口号操作

    这篇文章主要介绍了idea的spring boot项目实现更改端口号操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Maven 常用插件的详细整理

    Maven 常用插件的详细整理

    这篇文章主要介绍了Maven 常用插件的详细整理的相关资料,这里整理了maven的常用插件需要的朋友可以看下,需要的朋友可以参考下
    2017-08-08
  • Java数据结构和算法之冒泡排序(动力节点Java学院整理)

    Java数据结构和算法之冒泡排序(动力节点Java学院整理)

    冒泡排序(Bubble Sort)是一种简单的排序算法。本文重点给大家介绍java数据结构和算法之冒泡排序,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-04-04
  • java递归算法实例分析

    java递归算法实例分析

    这篇文章主要介绍了java递归算法实例分析,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Mybatis中 mapper-locations和@MapperScan的作用

    Mybatis中 mapper-locations和@MapperScan的作用

    这篇文章主要介绍了Mybatis中 mapper-locations和@MapperScan的作用,mybatis.mapper-locations在SpringBoot配置文件中使用,作用是扫描Mapper接口对应的XML文件,需要的朋友可以参考下
    2023-05-05
  • springboot-assembly自定义打包全过程

    springboot-assembly自定义打包全过程

    这篇文章主要介绍了springboot-assembly自定义打包全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Java.lang.Long.parseLong()方法详解及示例

    Java.lang.Long.parseLong()方法详解及示例

    这个java.lang.Long.parseLong(String s) 方法解析字符串参数s作为有符号十进制长,下面这篇文章主要给大家介绍了关于Java.lang.Long.parseLong()方法详解及示例的相关资料,需要的朋友可以参考下
    2023-01-01
  • 一文带你掌握springBoot如何做到优雅停机的

    一文带你掌握springBoot如何做到优雅停机的

    在分布式系统中,服务的优雅停机(Graceful Shutdown)是确保业务连续性的重要机制,下面就跟随小编一起来深入了解下springBoot实现优雅停机的具体方式吧
    2025-04-04

最新评论