application.yml 文件通常用于配置 Spring Boot 应用程序的各种设置和属性。这些配置可以涵盖从应用程序的基本信息到具体的模块配置。以下是一些 application.yml 文件中常见的配置内容:
-
应用程序配置:
- 应用名称和描述: 可以定义应用程序的名称、描述等元数据信息。
- 端口配置: 指定应用程序监听的端口号。
-
数据库配置:
- 数据源配置: 包括数据库的连接 URL、用户名、密码等。
- 连接池配置: 如连接池大小、连接超时等。
-
日志配置:
- 日志级别: 指定不同包或类的日志输出级别。
- 日志文件路径和格式: 配置日志文件的输出位置、格式等。
-
安全配置:
- 认证信息: 定义用户认证所需的信息,如用户名、密码等。
- 权限控制: 配置哪些用户或角色可以访问特定的资源。
-
第三方服务配置:
- API 密钥: 如访问第三方 API 所需的密钥或令牌。
- 服务端点 URL: 配置调用外部服务的 URL。
-
缓存和存储配置:
- 缓存配置: 如 Redis、Ehcache 等的连接信息和配置。
- 文件存储路径: 配置文件上传或存储的路径。
-
其他设置:
- 邮件服务器配置: 如 SMTP 主机、端口号等。
- 定时任务配置: 配置定时任务的执行策略和时间表。
以下是一个较为全面的示例 application.yml 文件,涵盖了常见的配置项和各种模块的配置示例:
# Spring Boot application settings
spring:
application:
name: MySpringBootApp
profiles:
active: dev # 激活的环境配置,可以是 dev、test、prod 等
# Server configuration
server:
port: 8080 # 应用程序端口号
servlet:
context-path: /myapp # 应用程序的上下文路径
# Data source configuration
datasource:
url: jdbc:mysql://localhost:3306/mydatabase # 数据库连接 URL
username: root # 数据库用户名
password: password # 数据库密码
driver-class-name: com.mysql.cj.jdbc.Driver # JDBC 驱动类名
# Hibernate JPA configuration
jpa:
database-platform: org.hibernate.dialect.MySQL8Dialect
hibernate:
ddl-auto: update # Hibernate 自动更新数据库结构
show-sql: true # 显示 SQL 语句
use-new-id-generator-mappings: false
# Logging configuration
logging:
level:
root: info # 根日志级别为 info
com.example: debug # com.example 包的日志级别为 debug
# Security configuration
security:
basic:
enabled: true # 启用基本认证
# Thymeleaf template engine configuration
spring:
thymeleaf:
prefix: classpath:/templates/
suffix: .html
# Redis cache configuration
spring:
redis:
host: localhost
port: 6379
password: myredispassword
database: 0
# Email configuration
spring:
mail:
host: smtp.example.com
port: 587
username: myemail@example.com
password: myemailpassword
properties:
mail:
smtp:
auth: true
starttls:
enable: true
# Swagger configuration
swagger:
enabled: true
title: My API Documentation
description: REST API documentation using Swagger
version: 1.0
base-package: com.example.controller
contact:
name: John Doe
email: john.doe@example.com
# External API configuration
myapi:
url: https://api.example.com
api-key: myapikey123
# Scheduled tasks configuration
spring:
task:
scheduling:
pool:
size: 10 # 定时任务线程池大小
# File upload configuration
multipart:
max-file-size: 10MB
max-request-size: 10MB
location: /path/to/uploaded/files
# Metrics and monitoring configuration
management:
endpoints:
web:
exposure:
include: '*' # 开放所有监控端点
metrics:
export:
statsd:
enabled: true
host: localhost
port: 8125
prefix: myapp
# Custom application properties
myapp:
custom-property1: value1
custom-property2: value2
这个示例展示了一个典型的 application.yml 文件,包含了应用程序的各种配置信息,涵盖了数据库配置、日志配置、安全配置、缓存配置、邮件配置、Swagger API 文档配置、定时任务配置、文件上传配置、监控配置等。根据实际需求,可以根据具体的业务逻辑和技术栈进行调整和扩展。
在实际应用中,application.yml 可以根据项目的需求和架构进行更复杂的配置,例如多环境配置(如开发、测试、生产环境)、Spring Boot 的自动配置和自定义配置等。