SpringBoot-yaml(在配置文件中设置多个对象)

yaml

1.基础语法

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

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

k: v

注意:

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

    比如 :name: “zhang\n san” 输出 :zhang换行 san

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

    比如 :name: ‘zhang\n san’ 输出 :zhang\n san

对象、Map(键值对)

#对象、Map格式
k:     
	v1:    
	v2:

在下一行来写对象的属性和值得关系,注意缩进;比如:

student:    
	name: zhangsan    
	age: 3

行内写法

student: {name: zhangsan,age: 3}

数组( List、set )

用 - 值表示数组中的一个元素,比如:

pets: 
 - cat 
 - dog 
 - pig

行内写法

pets: [cat,dog,pig]

修改SpringBoot的默认端口号

配置文件中添加,端口号的参数,就可以切换端口;

server:  
 port: 8082

2.给参数设置默认值

  • yml配置,给参数设置默认值
db:
  num: 1
  user: ${MYSQL-USER:root}
  password: ${MYSQL-PWD:root}
  url:
    0: jdbc:mysql://${MYSQL_HOST:  
    
#解释:代码里先从配置文件(springboot的yml配置或者命令行指定)去找key是MYSQL-USER的值,把它的值赋值给user,如果该参数不存在,则就把root赋值给user。   
  • java中取值时设默认值
//yml配置
province:
	city: xxx
	
//java中取值最好也写上默认值
@Value("${province.city:beijing}")
public String city;
  • java -jar -DMYSQL-USER=zs xxx.jar(注入参数)
总结

为什么要这样写,我想到的一点是方便以后修改配置,比如环境移植,换一个新的环境我只需要修改yml配置,或者干脆就在命令行修改

3.yml的配置与映射

导入依赖

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

例如:实体类 Person 类

@Data
@Component //注册bean到容器中
public class Person {
    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
    
    //有参无参构造、get、set方法、toString()方法  
}

编写一个yaml配置!

person:
  name: qinjiang
  age: 3
  happy: false
  birth: 2000/01/01
  maps: {k1: v1,k2: v2}
  lists:
   - code
   - girl
   - music
  dog:
    name: 旺财
    age: 1

我们刚才已经把person这个对象的所有值都写好了,我们现在来注入到我们的类中!

/*
@ConfigurationProperties作用:
将配置文件中配置的每一个属性的值,映射到这个组件中;
告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定
参数 prefix = “person” : 将配置文件中的person下面的所有属性一一对应
*/
@Component //注册bean
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private Integer age;
    private Boolean happy;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
}

yaml配置注入到实体类完全OK!

4.yml中配置多个对象

  • yml数组对象的写法

    #写法一
    ftp:
      ftpInfos: #类中的属性名
       - host: 10.1.63.26
         port: 21
         userName: jiangxi
         password: 1qaz@WSX
         ringPaths: ["/home/jiangxi/lihewei/sync1/","/home/jiangxi/lihewei/sync2/"]
       - host: 10.1.63.36
         port: 22
         userName: sichuan
         password: 1qaz@WSX
         ringPaths: ["/home/sichuan/lihewei/sync1/","/home/sichuan/lihewei/sync2/"]
         
         
    #写法二
    ftp:
      ftpInfos:
        - {host: 10.1.63.26, port: 21, userName: jiangxi, password: 1qaz@WSX, ringPaths: ["/home/jiangxi/lihewei/sync1/","/home/jiangxi/lihewei/sync2/"]}
        - {host: 10.1.63.36, port: 22, userName: sichuan, password: 1qaz@WSX, ringPaths: ["/home/sichuan/lihewei/sync1/","/home/sichuan/lihewei/sync2/"]}
    
  • 编写配置类

    @Data
    @Component
    @ConfigurationProperties(prefix = "ftp") // 配置文件的前缀
    public class ftpConfig {
    
        private FtpInfo[] ftpInfos;
    
    }
    
  • 获取数组对象

    public class Demo {
    
        @Autowired
        private ftpConfig ftpConfig;
        
        @Scheduled(cron = "${job.test}")
        public void test()  {
            //获取ftpInfo对象的数组
            FtpInfo[] ftpInfoList = ftpConfig.getFtpInfos();
    
            if (ftpInfoList.length>0){
               //遍历list集合,取出多个ftp配置
               for (FtpInfo ftpInfo : ftpInfoList) {
                    System.out.println(ftpInfo.getHost());
                    System.out.println(ftpInfo.getUserName());
                    System.out.println("路径:");
                    for (String ringPath : ftpInfo.getRingPaths()) {
                         System.out.println(ringPath);
                    }
                      System.out.println("路径");
                    }
             }
        }
    }
    

5.启动springboot项目指定配置文件

  • java -jar -Xms512M -Xmx2048M -Dspring.config.location=config/application-dev.yml getMd5Info.jar
  • home/jdk1.8/bin/java -jar …(未配置jdk的环境变量时,需要先指定jdk路径)
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spring Boot的application.yaml文件通常包含应用程序的配置信息,例如数据库连接信息、端口号、日志级别等。以下是一个示例的application.yaml文件,其包含了一些常见的配置项: ``` server: port: 8080 servlet: context-path: /api spring: datasource: url: jdbc:mysql://localhost:3306/mydb username: root password: mypassword driver-class-name: com.mysql.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: true logging: level: org: springframework: web: DEBUG ``` 在这个示例配置了服务器端口号为8080,Servlet上下文路径为/api。数据源配置指定了MySQL数据库连接的URL、用户名、密码和驱动程序类名。JPA配置指定了Hibernate的DDL自动更新策略和是否显示SQL语句。日志级别设置为DEBUG,以便调试应用程序。 请注意,YAML文件使用缩进来表示嵌套关系,例如server和servlet都是属于同一个父级节点的。另外,冒号和空格是YAML文件的重要标记,它们用于分隔键值对。 ### 回答2: 在Spring BootYAML文件是一种常见的配置文件格式,用于配置应用程序的各种属性和特性。YAML文件包含的内容可以分为以下几个方面: 1. 服务器端口配置:可以通过YAML文件配置应用程序监听的服务器端口号。例如,可以通过`server.port`属性设置应用程序监听的端口号。 2. 数据库配置YAML文件可以配置应用程序连接的数据库信息,如数据库的URL、用户名、密码等。通过配置`spring.datasource`属性,可以指定应用程序所使用的数据库。 3. 日志配置YAML文件可以配置应用程序的日志输出方式和级别。例如,可以通过配置`logging.level`属性来设置日志的输出级别,以及通过`logging.file`属性来指定日志的输出文件。 4. 应用程序属性配置YAML文件可以配置应用程序的各种属性和特性。例如,可以通过配置`spring.application.name`属性来设置应用程序的名称,以及通过`spring.profiles.active`属性来指定应用程序的运行环境。 5. 缓存配置YAML文件可以配置应用程序的缓存配置信息。例如,可以通过配置`spring.cache`属性来指定应用程序所使用的缓存类型和参数。 6. 安全配置YAML文件可以配置应用程序的安全认证信息。例如,可以通过配置`spring.security`属性来指定应用程序使用的安全认证方式和权限配置。 总之,YAML文件是Spring Boot常用的配置文件格式,可以通过它来配置应用程序的各种属性和特性,包括服务器端口、数据库连接、日志输出、应用程序属性、缓存配置和安全认证等。通过适当配置YAML文件,可以方便地对应用程序进行配置和管理。 ### 回答3: Spring Bootyaml文件是用来配置应用程序的。它包含了许多重要的参数和属性,用来定义应用程序的行为和特性。下面是yaml文件可能包含的一些内容: 1. 服务器端口:可以在yaml文件指定应用程序要监听的端口号。默认情况下,Spring Boot将使用8080端口。 2. 数据库配置:可以通过yaml文件来定义应用程序所使用的数据库连接信息,包括数据库的URL、用户名、密码等。可以根据需要配置多个数据库。 3. 日志配置:可以通过yaml文件来配置应用程序的日志输出方式和级别。可以指定日志的文件路径、输出格式和日志的级别等信息。 4. 线程池配置:可以通过yaml文件来配置应用程序的线程池使用方式和参数,包括线程池的大小、最大等待时间等。 5. 缓存配置:可以通过yaml文件来配置应用程序的缓存使用方式和参数,包括缓存的类型、最大缓存大小等。 6. Spring框架特性配置:可以通过yaml文件来配置Spring框架的各种特性,例如自动扫描包、自动注入Bean等。 7. 第三方服务配置:可以通过yaml文件来配置应用程序所使用的第三方服务,例如消息队列、文件存储、邮件发送等。 总之,yaml文件是用来配置Spring Boot应用程序的重要文件,它包含了许多关键的配置参数,可以根据应用程序的需求进行修改和调整。使用yaml文件可以方便地管理和配置应用程序的各种功能和特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值