如果将属性文件放在应用程序

时间:2017-03-16 11:36:01

标签: spring spring-mvc spring-scheduled

我正在使用Spring网络应用,需要使用每隔一段时间在后台运行的预定方法,因此我创建了一个类" ScheduleDemo",一个属性文件&#34 ; schedule.properties"它放在我的应用程序中,并且还在我的applicationContext.xml中添加了几行,一切正常。 现在应该有一个更改,我需要将schedule.properties文件移动到我的应用程序之外,然后我对我的applicationContext.xml进行了一些更改,但发现调度的方法无法运行,下面是我的代码,是否有任何人可以提供解决方案吗?

ScheduleDemo.java

@Configuration
@PropertySource("classpath:schedule.properties")
@EnableScheduling
@EnableAsync


Public class ScheduleDemo{

@Bean
public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
    return new PropertySourcesPlaceholderConfigurer();
}

@Scheduled(cron="${email.schedule}")
public void doSomething() {
    logger.info("Test if it is Okay"); 
}

}`

schedule.properties

email.schedule = 0 0 8 ? * WED

的applicationContext.xml

<task:executor id="executor" pool-size="5" /> <task:scheduler id="scheduler" pool-size="10" /> <task:annotation-driven executor="executor" scheduler="scheduler" />

然后当我将schedule.properties文件移到我的应用程序之外时,我在下面对applicationContext.xml进行了更改,我尝试了#34; file&#34;或&#34; classpath&#34;指向外部schedule.properties文件,但不成功。

更新了applicationContext.xml

<task:executor id="executor" pool-size="5" />
<task:scheduler id="scheduler" pool-size="10" />
<task:annotation-driven executor="executor" scheduler="scheduler" />
<bean
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
        <value>file:${app.config.location}/schedule.properties</value>
    </property>
</bean>`

0 个答案:

没有答案