我正在使用@ConfigurationProperties
来配置Spring启动时后台任务的延迟,我试图在另一个组件上使用@Scheduled
注释中的这个值。但是,为了使它工作,我必须使用Spring给bean的全名。
配置属性类如下:
@ConfigurationProperties("some")
class SomeProperties {
private int millis; //the property is some.millis
public int getMillis() {
return millis;
}
public void setMillis(int millis) {
this.millis = millis;
}
}
我在预定的方法中使用如下值:
@Component
class BackgroundTasks {
@Scheduled(fixedDelayString = "#{@'some-com.example.demo.SomeProperties'.millis}") //this works.
public void sayHello(){
System.out.println("hello");
}
}
是否可以引用该值而无需使用bean的全名? This answer认为这是可能的,但我无法使其发挥作用。
使用@Component
on,属性类允许以"#{@someProperties.persistence.delay}
的形式访问该属性。