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