Spring'in @Scheduled
cron
yapılandırmasında bir propertyClass gelen bir alıcı (hatta bir değişkeni) aramak için bir yolu var mı? Aşağıdaki derleme değildir:Bahar Boot @Scheduled cron
@Scheduled(cron = "${cron.scheduling}")
Spring'in @Scheduled
cron
yapılandırmasında bir propertyClass gelen bir alıcı (hatta bir değişkeni) aramak için bir yolu var mı? Aşağıdaki derleme değildir:Bahar Boot @Scheduled cron
@Scheduled(cron = "${cron.scheduling}")
Kısa cevap - bu yaklaşıma uygun olmayan var kutunun dışında.
@Scheduled
ek açıklamasında "cron ifadesi" olarak iletilen değer, StringValueResolver
arabiriminin bir örneğini kullanarak ScheduledAnnotationBeanPostProcessor
sınıfında işlenir.
StringValueResolver
kutudan çıktığı 3 uygulamaları var - Placeholder
için (örn $ {}) Embedded
değerleri ve Static
Strings için - Eğer aradığınızı elde edebilirsiniz hiçbiri.
Eğer özelliklerini kullanarak her ne pahasına önlemek için varsa
ek açıklamada, ek açıklama kurtulmak ve programlı her şeyi inşa tutucusu. Sen@Scheduled
açıklama aslında ne olduğu,
ScheduledTaskRegistrar
kullanarak görevleri kaydedebilirsiniz.
ben çalışır ve testleri geçen basit çözüm ne olursa olsun kullanmak önerir
.
yerine bir değişken veya getter kullanmakla ilgili. Bu benim fark ettiğim şey. Teşekkürler! – ltalhouarne
@Component
public class MyReminder {
@Autowired
private SomeService someService;
@Scheduled(cron = "${my.cron.expression}")
public void excecute(){
someService.someMethod();
}
}
/src/main/resources/application.properties
yılında:@Scheduled(cron = propertyClass.getCronProperty())
veya @Scheduled(cron = variable)
Özelliği doğrudan kapma önlemek istiyoruz
my.cron.expression = 0 30 9 * * ?
Bu benim geçerli kodum. Sorum, "$ {my.cron.expression}" yerine – ltalhouarne
sonra ne, bu değeri alır fasulye oluşturarak cron sınıfa fasulye Autowiring dersiniz? – mugua
propertyClass bir fasulye mi yoksa statik yöntemler içeren bir sınıf mı? –
@KenBekov bir fasulye. – ltalhouarne