SpringBoot--yaml

1、yaml相关语法

  • application.yaml语法结构

key:空格value

application.yaml的作用:

修改SpringBoot自动配置的默认值,因为SpringBoot在底层都给我们自动配置好了;

字面量:普通的值  [ 数字,布尔值,字符串  ]

字面量直接写在后面就可以 , 字符串默认不用加上双引号或者单引号;

name: 张三

注意:

  • “ ” 双引号,不会转义字符串里面的特殊字符 , 特殊字符会作为本身想表示的意思;

    比如 :name: "张\n三"   输出 :张换行三

  • '' 单引号,会转义特殊字符 , 特殊字符最终会变成和普通字符一样输出

    比如 :name: ‘张\n三’   输出 :张\n三

对象、Map(键值对)

//多行写法
people:
    name: 张三
    age: 22

//行内写法
people: {name: 张三, age: 22}

数组&集合( List、set )

//多行写法
fruits:
    - apple
    - pear
    - watermelon

//行内写法
fruits: [apple,pear,watermelon]

2、yaml注入

  • 编写User 实体类
package com.wust.springboot.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

/*
@ConfigurationProperties作用:
将配置文件中配置的每一个属性的值,映射到User实体类中;
告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
参数 prefix = “user” : 将配置文件中的person下面的所有属性一一对应
*/

@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@ConfigurationProperties(prefix = "user")
public class User {
    private String username;
    private int age;
    private Map<String,String> maps;
    private List<String> list;
    private Dog dog;
}

在User实体类中添加@ConfigurationProperties(prefix = "user") 注解后,idea会有如下提示:

这个提示是idea告诉我们需要导入一个依赖


<!-- 导入配置文件处理器,配置文件进行绑定就会有提示,需要重启 -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-configuration-processor</artifactId>
  <optional>true</optional>
</dependency>

 

  • 配置yaml
user:
  username: 张三
  age: 22
  maps: {chinese: 90,math: 100}
  list:
    - play basketball
    - watch movie
    - watch animation
  dog:
    name: xiaoming
    age: 3
  • 测试
    @Autowired //也可以使用@Resource
    User user; //注入user

    @Test
    public void contextLoads() {
        System.out.println(user);
    }

3、加载指定的配置文件

@PropertySource :加载指定的配置文件;

@configurationProperties:默认从全局配置文件中获取值;

  • 在resources目录下新建一个user.properties
username=张三
  • 在User实体类中指定加载user.properties
package com.wust.springboot.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;


@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@PropertySource(value = "classpath:user.properties")
public class User {
    private String username;
    private int age;
    private Map<String,String> maps;
    private List<String> list;
    private Dog dog;
}

4、回忆Spring使用@Value给bean注入属性的值


@Component //注册bean
public class Dog {
    @Value("阿黄")
    private String name;
    @Value("18")
    private Integer age;
}

5、配置文件占位符

user:
  username: 张三${random.uuid} # 随机uuid
  age: ${random.int}  # 随机int
  maps: {chinese: 90,math: 100}
  list:
    - play basketball
    - watch movie
    - watch animation
  dog:
    name: ${user.username}的xiaoming
    age: 3

6、yaml松散绑定

  • 编写实体类Dog
package com.wust.springboot.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
@ConfigurationProperties(prefix = "dog")
public class Dog{
    private String dogName;
}
  • 编写yaml配置文件

dog:
    dog-name: 小明

通过上述两个文件中的dogName和dog-name可知,yaml支持将dog-name松散绑定为对应实体类的dogName,即对应驼峰命名的字段 

7、properties、yaml配置文件在写中文的时候会乱码,需要在idea中配置文件编码格式为UTF-8

8、yaml的多文档块

  • 使用yaml可以不需要创建多个配置文件。
server:
  port: 8081
#选择要激活那个环境块
spring:
  profiles:
    active: prod

---
server:
  port: 8083
spring:
  profiles: dev #配置环境的名称
  #配置项目的访问路径
  servlet
    context-path: /


---

server:
  port: 8084
spring:
  profiles: prod  #配置环境的名称
  • 也可以 编写多个配置文件,然后在application.yml(后缀为yaml或者yml都行)配置,指定具体环境下的配置文件生效。
//使用开发环境下的配置文件
spring:
  profiles:
    active: dev

9、加载配置文件的优先级

  1. file: ./config/ (当前项目路径config目录下);
  2. file: ./ (当前项目路径下);
  3. classpath:/config/ (类路径config目录下);
  4. classpath:/ (类路径config下);

最后还可以通过spring.config.location来改变默认的配置文件位置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要创建一个Spring Boot项目并整合MyBatis-Plus,你可以按照以下步骤进行操作: 1. 首先,在你的项目的pom.xml文件中添加MyBatis-Plus和MySQL驱动的依赖。你可以引用和中提供的示例代码来配置pom.xml文件。这将确保你的项目具有使用MyBatis-Plus和MySQL的必要依赖。 2. 接下来,创建一个用于定义数据库连接和其他配置的配置文件。你可以在Spring Boot的配置文件(application.properties或application.yaml)中添加以下配置信息: - 数据库连接配置:包括数据库的URL、用户名和密码等信息。 - MyBatis-Plus配置:你可以配置MyBatis-Plus的一些属性,比如自动填充、逻辑删除等。 你可以根据你的实际需求进行配置。 3. 然后,创建数据库表对应的实体类。你可以使用Java类来表示数据库表,并在类上使用注解来映射数据库字段和表。 4. 接下来,创建Mapper接口和Mapper.xml文件。Mapper接口用于定义数据库操作的方法,而Mapper.xml文件用于编写具体的SQL语句。你可以使用MyBatis-Plus的自动注入功能来简化这一过程。通过继承MyBatis-Plus提供的BaseMapper接口,你可以自动获得常见的CRUD操作方法。 5. 最后,编写业务逻辑代码并注入Mapper。在你的Service类中,你可以注入Mapper接口,并使用它来调用数据库操作方法。你可以根据你的实际需求编写其他业务逻辑代码。 运行你的Spring Boot项目后,你应该能够看到控制台输出一系列信息,表明Spring Boot项目成功整合了MyBatis-Plus。你可以参考中提供的示例代码来验证整合结果。 总结起来,创建Spring Boot项目并整合MyBatis-Plus的步骤包括:配置pom.xml文件、创建配置文件、定义实体类、创建Mapper接口和Mapper.xml文件、编写业务逻辑代码。你可以根据所提供的参考内容来详细了解每个步骤的具体实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值