spring boot 2

一、SpringBoot 配置文件格式

SpringBoot 支持两种主流配置文件格式,核心功能一致,仅语法不同:

1. application.properties(键值对格式)

  • 语法:key=value,层级通过.分隔

properties

复制代码
server.port=9090
server.servlet.context-path=/start

2. application.yml/application.yaml(YAML 格式)

  • 语法:层级缩进(2 个空格)+ 冒号 + 空格,结构更清晰

yaml

复制代码
server:
  port: 9191
  servlet:
    context-path: /start2

关键规则

  • YAML 中冒号后必须跟一个空格作为分隔符
  • 层级关系通过空格缩进表示,相同层级左侧对齐
  • 支持字符串、布尔值、数字等多种数据类型

二、YML 配置信息的书写与获取

1. 配置书写示例

示例 1:三方服务配置(阿里云 OSS)

yaml

复制代码
ali-yun:
  oss:
    endpoint: https://oss-cn-hangzhou.aliyuncs.com
    access-key-id: LTAI5tQ8e13SYZUMTjMEEQV
    access-key-secret: MffMJoM24sc59SDEEJQDb0cfBVOAC9
    bucket-name: gsw
示例 2:自定义配置(QQ 邮箱)

yaml

复制代码
email:
  user: 593140521@qq.com
  code: jfejwezhcrzcbbbb
  host: smtp.qq.com
  auth: true

2. 配置信息的两种获取方式

方式 1:@Value 注解(单个配置项获取)

适用于少量配置项,语法:@Value("${配置键名}")

java

运行

复制代码
@RestController
public class EmailController {
    @Value("${email.user}")
    private String emailUser;

    @Value("${email.code}")
    private String emailCode;

    // 使用配置项
}
方式 2:@ConfigurationProperties 注解(批量绑定)

适用于一组相关配置,通过前缀批量绑定到实体类

java

运行

复制代码
@Component
@ConfigurationProperties(prefix = "email")
public class EmailProperties {
    // 成员变量名必须与配置文件中的键名一致
    private String user;
    private String code;
    private String host;
    private boolean auth;

    // getter/setter 方法(必须)
    public String getUser() { return user; }
    public void setUser(String user) { this.user = user; }
    // 其他getter/setter省略
}

优势:批量绑定更简洁,支持配置校验、IDE 提示,适合复杂配置场景。


三、SpringBoot 整合 MyBatis

1. 核心依赖引入

pom.xml 中引入 MyBatis 官方提供的 SpringBoot 起步依赖:

xml

复制代码
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

2. 自动配置原理

引入依赖后,SpringBoot 会自动配置以下核心组件,无需手动编写 XML:

  • SqlSessionFactoryBean:MyBatis 核心工厂类
  • MapperScannerConfigurer:Mapper 接口扫描器,自动注册 Mapper
  • DataSource:数据源配置,可通过 application.yml 配置数据库连接

3. 数据库配置示例(application.yml)

yaml

复制代码
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=UTC
    username: root
    password: 123456

# MyBatis配置
mybatis:
  mapper-locations: classpath:mapper/*.xml  # Mapper XML文件路径
  type-aliases-package: com.example.entity  # 实体类别名包
相关推荐
ManageEngineITSM22 分钟前
什么是CMDB?配置管理数据库的定义、作用与建设方法一文讲清
大数据·数据库·人工智能·资产管理·变更管理
IvorySQL31 分钟前
PostgreSQL 日报|PG19 外键快速路径隐患已修复(8 月 23 日)
数据库·postgresql
Elastic 中国社区官方博客38 分钟前
OpenTelemetry Java 扩展:无需分叉 agent 即可自定义追踪
java·大数据·运维·开发语言·数据库·人工智能·elasticsearch
01传说1 小时前
redis开机自启脚本
数据库·redis·缓存
这个DBA有点耶1 小时前
数据库运维的“自动驾驶”:KES-Operator如何把DBA经验编码为软件
数据库·dba·自动化运维
动力 continue2 小时前
MySQL 基础篇 · SELECT 查询大
数据库·sql·mysql·select
程序员-Benothing2 小时前
MySQL 索引下推是什么?——深入理解 ICP 原理与实践
android·数据库·mysql
这个DBA有点耶2 小时前
MySQL主从延迟的“最后一公里”:如何把延迟压到极限
数据库·程序员·架构
DianSan_ERP3 小时前
WMS接入电商平台自动化履约实战:一张订单从平台到出库的接口时序设计
java·前端·网络·数据库·安全·架构·自动化
智购科技自动售货机工厂3 小时前
2026自动售货机语音支付模块集成:从声纹识别到支付闭环的工程实践~YH
大数据·服务器·网络·数据库·人工智能