springboot临时属性(开发环境)、四级配置文件、自定义配置文件、多环境开发

临时属性

如何使用

  1. 使用jar命令启动Springboot工程时可以使用临时属性替换配置文件中的属性,例如:java -jar 工程名.jar --属性名=值
  2. 当需要加多个临时属性时,使用空格分隔即可。
  3. 配置属性的优先级可见某个网站,可自行百度下。
  4. 临时属性必须是当前boot工程支持的属性,否则设置无效。

在idea下测试临时属性是否生效

带属性启动springboot程序,为程序添加运行属性

点击右上方启动类的配置,Edit configuration。我们会看到一个program arguments 这就是springboot启动类中的形参args。在其中属于启动参数即可。例如–server.port=8080

通过编程形式带参数启动springboot程序,为程序添加运行参数

在启动类中自己新建一个string类型的数组,将属性加入到该数组中。并将这个数组作为springapplication.run方法的第二个参数。

不携带参数启动springboot程序(为了安全性)

springapplication.run(XXXApplication.class);

配置文件四级分类

Springboot中4级配置文件

1级(工程路径config目录中配置文件):file : config/application.yml // 最高,服务于运维经理整体调控
2级(工程路径配置文件):file : application.yml // 服务于运维人员配置涉密线上环境
3级(项目类路径config目录中配置文件):classpath:config/application.yml // 服务于项目经理整体调控
4级(项目类路径配置文件):classpath: application.yml // 最低,服务于开发人员本机开发与测试

作用

1级与2级留作系统打包后设置通用属性,1级常用于运维经理进行线上整体项目部署方案调控
3级与4级用于系统开发阶段设置通用属性,3级常用于项目经理进行整体项目属性调控

多层级配置文件中的属性采用叠加并覆盖的形式作用于程序。

自定义配置文件

springboot默认的配置文件名是application,那如果我们将application的名字改掉,它就不会生效了,我们如何使得自定义的配置文件生效呢?

  • 在configuration里找到program arguments 使用配置临时属性的方式。此时的配置文件已经被定义成了ebank.properties或者ebank.yml。增加一个启动参数 --spring.config.name=ebank
    除了根据文件名去找,还可以根据类路径去找文件。比如 –spring.config.location=classpath:/ebank.yml
    那如果我们配置多个配置文件的时候,此时用逗号分隔,并且生效的配置是最后一个。
  • 单服务器项目:使用自定义配置文件需求较低
  • 多服务器项目:使用自定义配置文件需求较高,将所有配置放置在一个目录中,统一管理
  • 基于springcloud技术,所有的服务器将不再设置配置文件,而是通过配置中心进行设定,动态加载配置信息

多环境开发

首先在配置文件中要设置好各个环境的配置,然后在第一步应用环境。
那么怎么将多个环境区分开呢?-我们可以使用三个减号进行区分:。注意底下有一个Document 就能看到现在正在编辑哪个环境以及总环境数目。
接下来我们得给各个环境取名字把,不然怎么应用呢? -通常生产环境取名prod,开发环境取名dev,测试环境取名test。如何配置呢?

spring.config.activate.on-profile=环境名

应用环境的配置如何书写呢?

spring.profiled.active=环境名

将多个环境的配置分散到单独的配置文件中,更有利于上线管理部署。例如application-prod.yml、application-dev.yml。
注意:properties文件多环境配置仅支持多文件格式,不支持写在一个配置文件中!!!

分组管理

根据功能对配置文件中的信息进行拆分,并制作成独立的配置文件,命名规则比如:application-devDB.yml、application-devRedis.yml。
然后使用include属性在激活指定环境的情况下,同时对多个环境进行加载使其生效,多个环境间使用逗号分隔。

spring:
	profiles:
		active:dev
		include:devDB,devRedis,devMVC

注意点:当主环境dev与其他环境有相同属性时,主环境属性生效;其他环境中有相同属性时,最后加载的环境属性生效。

从springboot2.4版本开始使用group属性替代include属性,降低了配置书写量;示例如下:

spring:
	profiles:
		active: dev
		group :
			"dev": devDB,devRedis,devMVC
			"pro": proDB,proRedis,proMVC
			"test": testDB,testRedis,testMVC

在实际使用中,使用group属性进行多环境配置更加便于线上维护管理。

如果maven配置的profile和springboot配置的profile不一致,这个时候谁的优先级更高呢?
- 我们知道springboot的项目时依赖于maven坐标的,也就是说springboot项目在某种程度上是依赖于maven的,所以这两者相比maven的优先级要更高一些。
- 如何在maven中设置多环境属性呢?如下
在这里插入图片描述- 然后在springboot中引用maven属性,如下:
在这里插入图片描述注意:想让哪个环境生效,activeByDefault属性就要写在哪个profile里。
- 执行maven打包指令,并在生成的boot打包文件,jar文件中查看对应信息。
- 如果想要activeByDefault生效,需要手动执行一下compile。也就是说pom.xml每次更新需要手动compile方可生效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SpringBoot中可以通过配置profile来实现多环境配置文件,只需要在application.properties或application.yml中添加spring.profiles.active属性,指定当前激活的环境即可。例如,可以在application.properties中添加:spring.profiles.active=dev,这样SpringBoot就会激活dev环境,加载application-dev.properties等配置文件。 ### 回答2: SpringBoot中配置多环境配置文件可以通过以下步骤实现: 1. 创建配置文件:在项目的资源文件夹下创建多个不同环境配置文件,通常以"application-"开头,并在文件名中添加环境标识,如"application-dev.properties"、"application-test.properties"等。 2. 配置文件内容:在各个配置文件中,根据不同环境的需求,设置不同的配置属性值。可以设置数据库连接、服务端口、日志级别等等。 3. 设置激活环境:在主配置文件(通常是"application.properties")中,通过设置"spring.profiles.active"属性来指定当前激活的环境。例如,设置为"dev"表示激活开发环境。 4. 使用配置属性:在代码中,可以使用"@Value"注解或者使用"Environment"对象来获取配置文件中的属性值。通过这种方式,可以根据不同环境的配置来动态改变应用程序的行为。 5. 多个配置文件的优先级:当存在多个配置文件时,SpringBoot将按照一定的优先级进行加载。其中,主配置文件具有最低优先级,而具体环境配置文件具有更高的优先级。因此,如果某个配置属性在多个文件中都存在,那么后加载的配置文件会覆盖前面加载的配置。 通过以上步骤,我们就可以在SpringBoot项目中实现多环境配置文件。这样,我们可以根据不同的环境需求,灵活地配置应用程序的各个属性,提高了适应不同环境变化的能力。 ### 回答3: Spring Boot中配置多环境配置文件可以通过使用不同的配置文件来实现。一种常用的配置方式是通过在application.properties(或application.yml)文件中使用不同的profile来指定环境。 首先,在src/main/resources目录下创建application-{profile}.properties(或application-{profile}.yml)文件,其中{profile}代表环境名称,例如application-dev.properties(或application-dev.yml)代表开发环境配置文件,application-prod.properties(或application-prod.yml)代表生产环境配置文件。 然后,在application.properties(或application.yml)文件中,添加一个配置项spring.profiles.active={profile}来指定使用哪个环境配置文件。例如,如果想要使用开发环境配置文件,可以设置spring.profiles.active=dev。 接下来,在具体的配置文件中,可以根据不同的需要设置不同的配置项。例如,在开发环境配置文件中可以设置数据库连接的URL为本地环境的URL,而在生产环境配置文件中可以设置数据库连接的URL为线上环境的URL。 最后,在代码中通过注解@Value("${配置项名称}")来获取配置文件中的配置项的值。Spring Boot会根据当前使用的环境自动加载相应的配置文件,并将对应的配置项的值注入到相应的字段中。 通过这种方式,我们可以根据不同的环境使用不同的配置文件,方便地进行开发、测试和部署。同时,Spring Boot还支持其他灵活的配置方式,例如使用命令行参数或环境变量来指定使用哪个环境配置文件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值