java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java的application.yml文件的配置

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

作者:‍小林同学学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 # 连接池中的最小空闲连接

总结

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

您可能感兴趣的文章:
阅读全文