@Profile("test")
@Component
class FooServiceStub extends FooService {...}
@Profile("prod")
@Component
class FooService {...}
我找到的消息来源,但没有解决我的问题:
2021年10月更新:
下面的答案已经过时,不再是公认的答案。请检查实际接受的答案改为!
原文答案:
请注意上面的@ActiveProfiles。
import java.lang.annotation.*;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.ContextConfiguration;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@ContextConfiguration
@ActiveProfiles("test")
@SpringBootTest(
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT,
classes = FeatureTestConfiguration.class)
public @interface FeatureFileSteps {
}
配置类非常基本:
@Configuration
@Import(FooApplication.class)
public class FeatureTestConfiguration {
}
使用注释:
@FeatureFileSteps
public class FooFeatureSteps {
@Given(...)
@When(...)
@Then(...)
}
下面是我的Spring boot(2.4.5)应用程序的应用程序yaml,有两个配置文件。 Spring:配置文件:dev 但是根据环境配置文件可以不同。我不想硬编码配置文件
我有5个环境: 我希望对每个环境使用不同的应用程序属性,因此我有以下属性文件,每个属性文件都有不同的数据源URL: 我正在使用IntelliJ并在本地机器上的Gradle插件中使用bootRun运行我的应用程序。我将使用在运行Tomcat的所有其他环境中部署相同的应用程序war文件。 我尝试添加: --spring.profiles.active=local 到脚本参数下的运行配置。 我尝试添加
出于某种原因,我不得不使用环境变量,而不是将系统属性传递给mvn命令。所以,我使用${env。PROFILE}作为属性名,pom.xml中的配置文件设置显示如下: 然后,我尝试激活配置文件到在线,但我失败了,命令行显示如下: 然后打开maven调试模式(-X),属性如下所示: 我们可以在上述属性列表中找到属性: “PROFILE”变量似乎是在envrionment中设置的。但是,“在线”配置文件未
我有一个用maven作为构建工具的应用程序。 我正在使用maven概要文件从不同的概要文件设置不同的属性。 假设我运行带有out的maven,并指定我希望spring的任何其他概要文件,将和作为活动概要文件。
给定一个测试类,如: 我得到了错误: java.lang.IllegalStateException:配置错误:发现测试类[com.example.myControllerTest]的多个@BootStrapWith声明:[@org.springframework.test.context.bootStrapWith(value=class org.springframework.boot.tes
我试图为dev、ct、e2e和prod创建Spring Boot配置文件。我正在使用application-*.yml文件来提供配置文件特定的设置。我能够成功激活ct和prod配置文件,但我不能激活开发和e2e配置文件。 我只在Intellij中观察到过这个问题。这是IntelliJ中的bug,还是我遗漏了什么?