如使用spring的注解 @Scheduled 执行定时任务
<pre name="code" class="java">public interface IMyTestService {
public void myTest();
}
@Component
public class MyTestServiceImpl implements IMyTestService {
@Scheduled(cron="0 0 9 * * ? ")//每天9点执行
@Override
public void myTest(){
System.out.println("进入测试");
}
}
现在要求cron中的时间在配置文件中可配,可以使用注解的方式读取配置文件
比如有config.properties
time.schedule=.0 0 9 * * ?
上面代码可改写为
@PropertySource("classpath:config.properties")
public class MyTestServiceImpl implements IMyTestService
{
@Scheduled("${<span style="font-size:12px;">time.schedule</span>}")
@Override
public void myTest(){
System.out.println("进入测试");
}
}
//为了让spring正确解析出${}中的值,需要添加下列代码
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
return new PropertySourcesPlaceholderConfigurer();
}
另外,在spring 3.2中,允许支持读取多个properties了,
Java代码 收藏代码
@Configuration
@PropertySource({
"classpath:config.properties",
"classpath:db.properties"
})
public class AppConfig {
@Autowired
Environment env;
}
spring 4.1中,支持@PropertySources
@Configuration
@PropertySources({
@PropertySource("classpath:config.properties"),
@PropertySource("classpath:db.properties")
})
public class AppConfig {
//...
}