application.yml 包含其他yml配置文件,如:swagger-config.yml
如何在 application.yml
中引用外部 YAML 文件
为了实现将特定配置分离到独立文件中,如 swagger-config.yml
,并将其引入至主配置文件 application.yml
,可以采用以下方法:
方法一:通过 Spring Profiles 实现多配置文件管理
利用 Spring 的 Profile 功能来加载不同环境下的配置文件。当应用程序启动时会自动读取指定 profile 下对应的 .yml
或者 .properties
文件。
---
spring:
profiles: swagger # 定义profile名称为swagger
server:
port: 8090 # 可选,默认服务端口号设置
---
# 主配置文件中的内容保持不变
创建一个新的名为 application-swagger.yml
的文件用于放置 Swagger 特定的配置项,并确保该文件位于资源目录下(通常是 src/main/resources/)。接着,在此新文件内编写如下所示的内容[^1]:
springdoc:
api-docs:
path: /v3/api-docs
swagger-ui:
path: /swagger-ui.html
最后一步是在应用启动类上激活所需的 profile,可以通过命令行参数 -Dspring.profiles.active=swagger
来完成这一操作;也可以直接修改 application.yml
添加默认激活的 profile 列表:
spring:
profiles:
active: swagger,dev,test...
这种方法不仅适用于 Swagger 配置,还可以扩展应用于其他场景,比如数据库连接池、缓存策略等不同的模块化配置需求。
方法二:使用 @PropertySource 注解导入自定义属性源
如果希望更加灵活地控制哪些配置应该被加载,则可以在 Java 类级别使用 @PropertySource
注解显式声明要加载的额外属性文件。这种方式允许开发者精确指明哪个 Bean 应关联哪几个外部资源配置文件。
@Configuration
@PropertySource(value = "classpath:swagger-config.yml", factory = YamlPropertySourceFactory.class)
public class SwaggerConfig {
}
需要注意的是,由于默认情况下 @PropertySource
不支持解析 .yml
格式的文件,因此还需要提供一个辅助工厂类 YamlPropertySourceFactory
来处理此类情况。具体实现可参见官方文档或其他开源项目实例[^2]。
对于上述两种方式的选择取决于实际应用场景和个人偏好。前者更为简洁直观,适合大多数常规用途;后者则提供了更细粒度的操作权限给开发人员自行定制逻辑流程。
相关推荐


















