application.yml不生效,bootstrap.yml不生效的3种解决方案

解决方案3:【推荐:40秒搞定】

application.yml和bootstrap.yml 是什么?

Spring Boot 默认支持 properties(.properties) 和 YAML(.yml .yaml ) 两种格式的配置文件,yml 和 properties 文件都属于配置文件,功能一样。

一.加载顺序

1.若application.yml 和bootstrap.yml 在同一目录下:bootstrap.yml 先加载 application.yml后加载

2.属性覆盖问题

启动上下文时,Spring Cloud 会创建一个 Bootstrap Context,作为 Spring 应用的 Application Context 的父上下文。

3. Bootstrap 属性有高优先级,默认情况下,它们不会被本地配置覆盖

二.配置区别

bootstrap.yml 和 application.yml 都可以用来配置参数。

bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。一旦bootStrap.yml 被加载,则内容不会被覆盖。

application.yml 可以用来定义应用级别的, 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。

<1>问题描述: bootstrap.yml不生效没有云朵

解决方案1:

第一步:在已有的sca-provider项目pom文件中添加如配置依赖,例如:

    <dependencies>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

    </dependencies>

第二步:刷新>等待几秒>成功!,例如:


解决方案2:

第一步:依次打开 Editor  > File Types >............

例如:  查询发现bootstrap.yml直接删除就好 。(.yml 前不能有其他字母)

 第二步:点击 + >添加  .yml > 查看 >  应用!,例如:

 第三步:成功效果!

解决方案3:【推荐】

第一步:.......直接下载图中的 Spring Boot Assistant 插件,安装重启立刻见效。

总结:3种解决方案情况应自身情况而定

1.直接使用第一种方案

2.两种方案一起使用

3.建议直接使用第三种方案(直接靠谱)

### Spring Boot `application.yml` 和 `bootstrap.yml` 区别 #### 加载顺序差异 在 Spring Boot 应用启动过程中,`bootstrap.yml` 或者 `bootstrap.properties` 会优先于 `application.yml` 或者 `application.properties` 被加载。这意味着如果存在相同属性配置,则 `bootstrap.yml` 中的配置项将会覆盖掉 `application.yml` 中相同的配置项[^1]。 #### 使用场景区分 - **Bootstrap Context**: 主要负责应用程序上下文初始化之前的工作,比如从远程仓库拉取配置信息、激活某些特性开关等操作;通常用于微服务架构下的分布式配置管理工具集成(如 Spring Cloud Config),此时需要提前获取到必要的元数据以便后续正常工作。 - **Application Context**: 则更侧重于定义具体业务逻辑层面的内容,例如数据库连接池大小调整、定时任务调度策略设定等方面。这些参数往往是在本地环境中直接生效而无需依赖外部资源提供支持[^2]。 对于使用了 Spring Cloud Config Server 的情况来说,在 `bootstrap.yml` 内部应当指明诸如 `spring.application.name`, `spring.cloud.config.server.git.uri` 这样的基础环境变量以及涉及敏感信息安全传输的相关选项,从而确保能够顺利取得远端存储着的一系列默认或个性化定制过的设置值并将其传递给即将创建出来的 Application Context 实例对象去解析应用[^3]。 ### 最全 `application.yml` 配置示例 以下是较为完整的 `application.yml` 文件结构及其常见配置项: ```yaml server: port: 8080 # 设置服务器监听端口 spring: datasource: url: jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&serverTimezone=Asia/Shanghai username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl mapper-locations: classpath*:mapper/*.xml typeAliasesPackage: com.example.demo.entity logging: level: root: info com.example.demo: debug file: name: logs/demo.log security: oauth2: client: registration: github: clientId: ${GITHUB_CLIENT_ID} clientSecret: ${GITHUB_CLIENT_SECRET} management: endpoints: web: exposure: include: "*" feign: hystrix: enabled: true hystrix: command: default: execution: isolation: thread: timeoutInMilliseconds: 5000 ribbon: ReadTimeout: 5000 ConnectTimeout: 5000 eureka: instance: prefer-ip-address: true client: service-url: defaultZone: http://${EUREKA_HOST}:${EUREKA_PORT}/eureka/ zuul: ignored-services: &#39;*&#39; routes: user-service: path: /users/** serviceId: USER-SERVICE ``` 此段代码展示了如何在一个典型的基于 Spring Boot 开发的企业级 Java Web 应用程序中合理组织各类资源配置条目,涵盖了从基本的服务端口号指定直至高级别的熔断机制控制等多个方面[^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值