一. 配置文件格式有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代码中用了;