springboot笔记(4) 多环境配置和引用配置文件中的内容

一. 配置文件格式有yml和properties.

    1. yml格式因为会自动的将同一对象下的属性聚集在一块, 并且文件相对较小, 所以是首选;

     2.多环境配置: 开发环境和生成环境都配置在同一yml文件中

如下图是我项目的三个配置文件,其中,application.yml是启动服务时,服务器会自动加载的配置文件,而application-dev.yml代表的是开发环境的配置文件,application-prod.yml代表的是生产环境的配置文件,后两个文件在启动服务时,服务器不会自动加载,那么在不同的环境中时怎么调用不同的文件的呢?

  

方式一、修改配置文件方式

    修改application.yml配置文件,具体内容如下图:

这样,在启动服务时,服务器就会通过application.yml文件去调用application-dev.yml文件。同理,若active: prod,那么服务在启动时,服务器就会调用application-prod.yml文件。也就是说,在开发环境时,只需将application.yml配置文件配置为"dev",而生产环境时,只需将“dev”改为“prod”就可以了。

方式二、命令启动服务,命令中带参数方式(此方式可以没有application.yml文件)

第一步:进入到项目目录下,先用maven对项目进行打包,会在target目录下生成项目的jar包

    打包可以用右侧的moven窗口

       第二步:进入target目录,执行命令:java -jar 生成的jar包 --spring.profiles.active=dev

              (其中的--代表条件)

 项目就会调用application-dev.yml配置文件,而不是application.yml, 的配置要求启动服务。同理,若是开发环境,只需将prod改为dev即可。

二.  引入配置文件信息

      1.@Value("${配置属性}")会自动获取配置文件的属性并赋值给变量,

          例子: 在配置文件中有属性picpath, 想在java代码中用这个属性;

        

 

 2 @ConfigurationProperties注解获取大量的注解

在java代码中获取application-pro.yml配置文件中的aliyun属性下所有的属性值(111,222,333)

(1)新建包properties, 类AliyunProperty;(这里用了一个类单独获取aliyun配置)

(2) 添加类注解@ConfigurationProperties(profiex = "aliyun")

(3)@Component添加类到ioc容器中

(4)设置类的属性名与aliyun的属性名一直, 

然后就可以在java代码中用了;

 

 

原文地址:https://www.cnblogs.com/dangdanghepingping/p/14397454.html