值得注意的是使用el表达式的时候一定要先注册类PropertySourcesPlaceholderConfigurer:可以用@Bean注册或者用XML的<bean>标签
这里贴上源码:
package task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.annotation.PropertySource;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* Create by szw on 2017/11/23 10:05
*/
@Component
@Lazy(false)
@PropertySource(value = "classpath:task.properties")
public class SpringTask {
@Autowired
private Environment environment;
@Value(value = "${demo.url}")
private String name;
@Scheduled(cron = "${corn}")
public void task() {
String corn = environment.getProperty("demo.url");
System.out.println("我的名字" + name);
System.out.println("我执行了:" + corn);
System.out.println("执行");
}
@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
return new PropertySourcesPlaceholderConfigurer();
}
}