java在配置时更改Springbean属性
在spring servlet xml文件中,我使用org.springframework.scheduling.quartz.SchedulerFactoryBean
定期触发一组触发器
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="AwesomeTrigger" />
<ref local="GreatTrigger" />
<ref local="FantasticTrigger"/>
</list>
</property>
</bean>
问题是,在不同的环境中,我不希望某些触发器触发。有没有办法在我的构建中包含某种类型的配置或定义的变量。环境属性或spring自定义上下文属性文件中的属性,该文件帮助bean xml确定哪些触发器应包含在列表中?例如,通过这种方式,在开发中调用AwesomeTrigger
,而不是在qa中调用
# 1 楼答案
我也有同样的问题
我所做的:
我重写了触发器bean以添加一个已启用的属性
在我推翻SchedulerFactoryBean之后。设置触发器,我只设置启用的触发器
您只需要在xml文件中使用这些新bean,并在属性文件中启用
例:
# 2 楼答案
创建一个基于属性返回触发器列表的工厂bean
参考: