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 # 连接池中的最小空闲连接

总结

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

相关文章

  • Java对异常的认识与异常的处理小结

    Java对异常的认识与异常的处理小结

    Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2025-06-06
  • JavaWeb文件上传下载功能深入分析(二)

    JavaWeb文件上传下载功能深入分析(二)

    这篇文章主要为大家详细解析了JavaWeb文件上传与下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • SpringBoot对Filter过滤器中的异常进行全局处理方案详解

    SpringBoot对Filter过滤器中的异常进行全局处理方案详解

    这篇文章主要介绍了SpringBoot对Filter过滤器中的异常进行全局处理,在SpringBoot中我们通过 @ControllerAdvice 注解和 @ExceptionHandler注解注册了全局异常处理器,需要的朋友可以参考下
    2023-09-09
  • MyBatis在Mapper中传递多个参数的四种方法详解

    MyBatis在Mapper中传递多个参数的四种方法详解

    这篇文章主要介绍了MyBatis在Mapper中传递多个参数的四种方法,文章通过代码示例介绍的非常详细,具有一定的参考价值,,需要的朋友可以参考下
    2023-09-09
  • 详解MyBatis工作原理

    详解MyBatis工作原理

    近来想写一个mybatis的分页插件,但是在写插件之前肯定要了解一下mybatis具体的工作原理吧,本文就详细总结了MyBatis工作原理,,需要的朋友可以参考下
    2021-05-05
  • SpringCloud的那些中间件问题

    SpringCloud的那些中间件问题

    这篇文章主要介绍了SpringCloud的那些中间件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Java 8中Stream API的这些奇技淫巧!你Get了吗?

    Java 8中Stream API的这些奇技淫巧!你Get了吗?

    这篇文章主要介绍了Java 8中Stream API的这些奇技淫巧!你Get了吗?文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 解析Java编程之Synchronized锁住的对象

    解析Java编程之Synchronized锁住的对象

    这篇文章主要介绍了解析Java编程之Synchronized锁住的对象,具有一定参考价值,需要的朋友可以了解下。
    2017-10-10
  • Java中JFrame实现无边框无标题方法

    Java中JFrame实现无边框无标题方法

    这篇文章主要介绍了Java中JFrame实现无边框无标题方法,本文直接给出代码实例,需要的朋友可以参考下
    2015-05-05
  • 深入了解Java SpringBoot自动装配原理

    深入了解Java SpringBoot自动装配原理

    在使用springboot时,很多配置我们都没有做,都是springboot在帮我们完成,这很大一部分归功于springboot自动装配。本文将详细为大家讲解SpringBoot的自动装配原理,需要的可以参考一下
    2022-03-03

最新评论