新建的SpringBoot项目下有一个默认的application.properties配置文件,在这里我们可以进行一些项目的基础配置,例如端口号,ssl,数据库地址账号密码等等....
例如:
image.png
我们也可以将配置文件改为yml格式,这样编写起来更加方便,结构清晰,在application.properties同目录下,创建application.yml文件,然后删除application.properties即可,在yml格式下配置实例如下格式:
image.png
可以看到yml格式下,配置属性类似对象一样,同样的前缀归为一类下面(值得注意的是yml下的key和value的值:后面需要有一个空格)
配置文件里不止有自带的配置(在末尾会有一些常用配置介绍),我们也可以在这里自定义一些属性值,供全局使用。
我们首先在yml内自定义了一个person属性,值为刘德华
image.png
然后在项目代码里我们可以通过@value注解来进行引用
image.png
运行项目可发现已经成功:
image.png
多个自定义属性值,每个都使用一次value注解比较麻烦,我们可以把属性值直接注入一个对象中来使用首先我们模范其它配置,在yml内创建一个自定义对象:
image.png
接着我们创建一个实体类来接收配置数据:
image.png
然后我们在controller中来使用访问试试:
image.png
可以看到我们特意注入了两个不同的PersonYml,然后一个接口访问name,另外一个接口修改name。
我们首先访问hello得到名称为刘德华。然后访问changeName修改为张学友之后,重新访问name,发现访问结果已变为张学友,所以配置文件的值是全局共享的。
一般在开发中,我们开发环境与测试环境的配置经常性不同,我们可以利用配置文件来部署两种不同配置,免得每次切换上线都要挨个去修改属性:
首先我们创建两个新的yml配置文件,一个名为application-debug.yml,一个名为application-release.yml。然后我们修改applicaition.yml:
通过spring.profiles.active我们设定当前运行debug配置。
接着我们在debug和release两个yml中进行各自的配置编写即可。当需要切换环境时只需要修改spring.profiles.active即可。
如果正式上线打包时active为debug,我们忘记修改为release直接将debug打包了是否需要重新修改配置然后重新打包呢?其实是不需要的,我们可以在执行jar包时直接手动通过命令行告知我们要使用哪种配置:java -jar -Dspring.profiles.active=release xxx.jar即可
网友评论