繁体   English   中英

基于Spring MVC中的Spring概要文件的Spring Qualifier名称

[英]Spring Qualifier name based on the spring profile in Spring MVC

在我的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>

在我的服务中,我想基于spring配置文件@Autowired bean。 我正在尝试按照下面的方法基于活动的弹簧配置文件来定义限定符名称,但是它给出了一个错误,找不到具有限定符的bean。 在春季MVC中,在这种情况下如何处理预选赛名称。 请指教。

@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;

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

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

要检索此标志,请使用

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM