Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring仅在满足条件时创建bean_Spring_Spring Mvc - Fatal编程技术网

Spring仅在满足条件时创建bean

Spring仅在满足条件时创建bean,spring,spring-mvc,Spring,Spring Mvc,假设一个接口有两个实现,这些bean在spring配置xml中声明为bean。现在,我只需要一个基于系统属性的接口实现。我不想创建bean的第二个实现。我该怎么做?我看了这个博客,但下面这个博客的代码片段使用了“new”操作来创建bean。在我的例子中,bean是在spring配置文件中声明的 是什么决定了是否使用其中一个?同时发布相关配置。好的,当前配置只是spring上下文文件中声明的实现bean,仅此而已。并且,决定一个或另一个的是系统属性。 @CONFIGURATION PUBLIC

假设一个接口有两个实现,这些bean在spring配置xml中声明为bean。现在,我只需要一个基于系统属性的接口实现。我不想创建bean的第二个实现。我该怎么做?我看了这个博客,但下面这个博客的代码片段使用了“new”操作来创建bean。在我的例子中,bean是在spring配置文件中声明的


是什么决定了是否使用其中一个?同时发布相关配置。好的,当前配置只是spring上下文文件中声明的实现bean,仅此而已。并且,决定一个或另一个的是系统属性。
@CONFIGURATION
PUBLIC CLASS MYCONFIGURATION {

  @BEAN(NAME="EMAILERSERVICE")
  @CONDITIONAL(WINDOWSCONDITION.CLASS)
  PUBLIC EMAILSERVICE WINDOWSEMAILERSERVICE(){
      RETURN NEW WINDOWSEMAILSERVICE();
  }

  @BEAN(NAME="EMAILERSERVICE")
  @CONDITIONAL(LINUXCONDITION.CLASS)
  PUBLIC EMAILSERVICE LINUXEMAILERSERVICE(){
    RETURN NEW LINUXEMAILSERVICE();
  }