Spring Test中的@ActiveProfiles注解用于指定在测试中激活的配置文件。如果需要替代@ActiveProfiles注解的方案,可以使用Spring Boot的Profile功能来实现。 Spring Boot的Profile功能允许根据不同的环境加载不同的配置文件。可以通过在application.properties或application.yml文件中设置spring.profiles.active属性来指定激活的配置文件。
命令行方式是一种外部配置的方式,在执行java -jar命令时可以通过-–spring.profiles.active=test的方式进行激活指定的profiles列表。 使用方式如下所示: java-jar order-service-v1.0.jar--spring.profiles.active=dev&>order-service.log& 注意:--spring.profiles.active的方式要在-jar之后定义。 二、Java系统属性...
application-dev.properties:开发环境 application-test.properties:测试环境 application-prod.properties:生产环境 至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。 如:spring.profiles.active=test就会加载application-test.properties配置文件内容 ...
例如,你可以这样使用 @TestPropertySource 注解: @TestPropertySource(properties = {"spring.profiles.active=test"})
执行java-jar xxx.jar--spring.profiles.active=test,可以观察到服务端口被设置为9090,也就是测试环境的配置(test) 执行java-jar xxx.jar--spring.profiles.active=prod,可以观察到服务端口被设置为80,也就是生产环境的配置(prod) 按照上面的实验,可以如下总结多环境的配置思路: application.properties中配置通用内容...
1.错误提示 错误原因: 启动类需要加载配置文件, 但是因为@SpringBootTest 未指定读取配置的文件, 所以报错找不到文件, 以及无法解析占位符. spring.profiles.active: 区分配置 正常启动是没有问题的,只是单元测试有问题。无法注入配置,但是配置确定是存在的。 问题的原因是: 没有指定配置文件。解决方式是指定配置文件...
这样就实现了通过profile标记不同的环境,接下来就可以通过设置spring.profiles.default和spring.profiles.active这两个属性来激活和使用对应的配置文件。default为默认,如果没有通过active来指定,那么就默认使用default定义的环境。 这两个属性可以通过多种方法来设置: ...
profiles.active表示当前激活的环境参数,他可以是一个字符数组,但一般情况下,我们都是使用单个字符,例如dev,test,prod来标识。这里我们还是以数据库配置为例,假设我们原来的application.yml里面配置的数据源是本地数据源,现在我们再来配置一个开发库,以dev作为环境标识。
@ActiveProfiles("test")指定激活那个组件环境,这里激活test的环境 @ContextConfiguration(classes= {StudentConfigDev.class,StudentCongigTest.class}) 这里这么写也是可行的,就不用写大的管理config了,但还是希望在以后能写到一个大的config管理里面,因为这样还可以做一些其他事。
-Dspring.profiles.active=test 1. 第二种方式就是通过AnnotationConfigApplicationContext类的无参构造方法来实现。我们在程序中调用AnnotationConfigApplicationContext的无参构造方法来生成IOC容器,在容器进行初始化之前,我们就为IOC容器设置相应的环境,然后再为IOC容器设置主配置类。例如,我们将IOC容器设置为生产环境,如下...