春季启动:特定于Bean创建配置文件

时间:2020-08-20 03:45:42

标签: java spring spring-boot spring-bean spring-profiles

我正在使用Spring Boot应用程序。我正在使用Spring Boot版本:2.2.4-RELEASE

我正在尝试创建一个特定于概要文件的bean,但是该bean并未按预期创建。

下面是我的配置文件:

@Configuration
@Slf4j
public class TestConfig {

  //below is the bean i need to be created for dev and test
  @Bean
  @Profile({“dev”, “test”})
  TestObject getTestObject() {

        //do something
  }

//below is the bean i need to be created for staging and prod
  @Bean
  @Profile({“staging”, “prod”})
  TestObject getTestObject() {

        //do something
  }


//someother beans common for all profiles

}

Service.java

@Service
public class Serviceclass {

  @Autowired
   private TestObject testObj;

   //some methods

}

我尝试了上述方法,但是bean是 没有为任何配置文件创建。关于如何实现这一目标的任何建议都会有所帮助。

更新:由于服务类之一依赖于我要创建的bean,因此应用程序无法启动。

谢谢。

3 个答案:

答案 0 :(得分:1)

在发现的笔记中

https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/Profile.html

使用不同的Java方法名称指向相同的bean名称

答案 1 :(得分:0)

您必须为该应用程序激活配置文件。您可以将运行时参数作为 -Djava.profiles.active = dev 传递。它将解决您的问题。 另外,需要创建特定于环境的属性文件,例如 application- {env} .properties

答案 2 :(得分:-1)

我认为问题是相同的方法名称。由于某种原因,如果我使用相同的名称(方法重载),则会遇到问题。找到了一个类似的线程来解释相同的内容。

非常感谢所有尝试解决此问题的人。

注意:我将尝试找到该线程,并在此处更新该线程,以解释相同的内容。