Spring限定符名称基于Spring MVC中的Spring概要文件



在我的Spring Config中,我定义了三个bean,如下所示。

<bean id="validationFlag-dev" class="java.lang.Boolean">
<constructor-arg value="false"/>
</bean>
<bean id="validationFlag-test" class="java.lang.Boolean">
<constructor-arg value="true"/>
</bean>
<bean id="validationFlag-prod" class="java.lang.Boolean">
<constructor-arg value="true"/>
</bean>

在我的服务中,我想@Autowired基于spring配置文件的bean。我正在根据下面的内容尝试基于活动的spring概要文件定义限定符名称,但它给出了一个错误:找不到带有限定符的bean。在springMVC中,在这种情况下我如何处理限定符名称。请告知。

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

您没有正确使用配置文件。您应该实例化一个bean,而不是每个概要文件的每个bean,并根据活动的概要文件来执行此操作。

例如:

<beans profile="dev">
<bean id="validationFlag" class="java.lang.Boolean">
<constructor-arg value="false"/>
</bean>
</beans>

然后就这样自动布线:

@Autowired
@Qualifier("validationFlag")
Boolean validationFlag;

在您的情况下,更简单的解决方案可能是将此标志添加为属性。

只需为每个配置文件创建属性文件
例如,对于dev配置文件,创建application-dev.properties和设置属性validation.flag=false

要检索此标志,请使用

@Value("{validation.flag}") Boolean validFlag;

相关内容

  • 没有找到相关文章

最新更新