从spring-config自动连接bean-特定于环境



我正在尝试使用特定于环境的布尔标志。在我的spring配置中,我定义了三个特定于环境的bean,如下所示。

<bean id="validationFlag-E1" class="java.lang.Boolean.FALSE"/>
<bean id="validationFlag-E2" class="java.lang.Boolean.TRUE"/>
<bean id="validationFlag-E3" class="java.lang.Boolean.TRUE"/>

我还";spring.profiles.active";在服务器级定义的系统属性,其值为"0";E1/E2/E3";基于环境。

在我的服务中,我试图按照下面的步骤进行自动布线,但它不起作用,并且没有可用的"java.lang.Boolean"类型的合格bean:至少需要1个符合自动布线候选条件的bean。请告诉我。

@Autowired
@Qualifier("validationFlag-${spring.profiles.active}")
Boolean evalFlag;

我们可以通过拥有单独的特定于环境的属性文件来实现上述要求。但我不想为一个标志创建三个属性文件。所以,在我的spring框架项目中尝试上述方法。

将您的bean定义更改为:

<bean id="validationFlag-E1" class="java.lang.Boolean">
<constructor-arg value="false"/>
</bean>
<bean id="validationFlag-E2" class="java.lang.Boolean">
<constructor-arg value="true"/>
</bean>
<bean id="validationFlag-E3" class="java.lang.Boolean">
<constructor-arg value="true"/>
</bean>

您可以将环境属性${blah.blah.flag}(或您选择的任何名称(与标志(falsetrue(-Dblah.blah.flag=true的值一起使用,然后将该值注入属性

@Value("${blah.blah.flag}")
private Boolean flag;

相关内容

  • 没有找到相关文章

最新更新