application.properties 切换到 application.yml

本文探讨了YML和Properties文件在Spring Boot项目中的使用与优先级问题。揭示了直接修改application.properties后缀为yml可能导致的问题及解决办法,包括执行maven清理安装和依赖配置。同时对比了两种配置方式的特性。

yml文件的好处,天然的树状结构。配置起来和使用起来比较方便。

但是你直接去修改 application.properties 后缀名  修改yml 你会发现你的代码跑不起来。

会报标签找不到的情况。

上网查完资料后发现 需要 先删除 application.properties 文件后,执行 maven -X clean install

执行maven -X clean install 吧

 

application.yml 和 application.properties 两个文件的优先级

application.properties > application.yml

如果你的项目中存在 application.properties 文件,
那么 application.yml 文件就只是一个摆设。

然后我们来看看他们两个的区别吧

application.properties

application.yml 

如果没有生效,请在 pom中添加一下配置

 

<dependency>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>${snakeyaml.version}</version>
</dependency>

key后面的冒号,后面一定要跟一个空格 我被这个啃了一会儿。

### 将 Spring Boot `application.properties` 转换为 YAML 格式 在 Spring Boot 应用程序中,配置文件可以从 `.properties` 格式转换成 `.yml` 或者 `.yaml` 格式。这种转换不仅涉及简单的键值对映射,还涉及到层次结构和缩进的变化。 #### 属性到 YAML 的基本转换原则 对于每一个属性,在 `.properties` 文件中的每一行表示一个单独的设置;而在 `.yml` 文件里,则可以通过冒号后面跟上空格以及相应的值来表达同样的含义,并利用缩进来展示嵌套关系[^1]。 例如: ```properties server.port=8080 ``` 可以被转化为如下形式保存于 `application.yml` 中: ```yaml server: port: 8080 ``` #### 数据库连接字符串的例子 如果有一个较为复杂的例子,比如数据库连接信息: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 那么对应的 YAML 表达方式将是这样的: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/mydb?useSSL=false&serverTimezone=UTC username: root password: password driver-class-name: com.mysql.cj.jdbc.Driver ``` #### 日志级别的设定 再来看一下关于日志级别定义的情况: ```properties logging.level.org.springframework.web=DEBUG logging.level.org.hibernate=ERROR ``` 这可以在 YAML 文件中这样写: ```yaml logging: level: org: springframework: web: DEBUG hibernate: ERROR ``` 需要注意的是,当把多个子项放在同一个父节点之下时,应该保持一致性的缩进风格以便清晰地区分各个层级之间的隶属关系[^2]。 #### 多环境配置的支持 有时会遇到多环境下的不同配置需求,这时也可以很容易地迁移到 YAML 格式的配置文件中去处理。例如: ```properties spring.profiles.active=dev --- spring.config.activate.on-profile=dev spring.datasource.url=jdbc:mysql://localhost:3307/dev_db ... --- spring.config.activate.on-profile=test spring.datasource.url=jdbc:mysql://localhost:3307/test_db ... ``` 上述内容可以用下面的方式改写入 `application.yml` : ```yaml spring: profiles: active: dev --- spring: config: activate: on-profile: dev datasource: url: jdbc:mysql://localhost:3307/dev_db ... --- spring: config: activate: on-profile: test datasource: url: jdbc:mysql://localhost:3307/test_db ... ``` 以上就是从 `application.properties` 到 `application.yml` 进行转换的一些常见场景及其对应的方法[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值